'daki MouseOver eylemi için olay Bir kılavuz için fareyi ve fare dışı olayları işlemek istiyorum. WPF'nin bunun için olayları var mı. Not: IsMouseOver özelliğini benim tarzımda kullanmak istemiyorum. MouseEnter ve MouseLeave yöntemini kullandım ancak çok başarılı olamadım.WPF
Q
WPF
8
A
cevap
7
XAML'de MouseEnter ve MouseLeave olaylarını yakalamak için EventTriggers'ı kullanabilirsiniz.
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="1" Background="Blue">
<StackPanel.Style>
<Style>
<Style.Triggers>
<EventTrigger RoutedEvent="StackPanel.MouseEnter">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
AutoReverse="False"
Duration="0:0:1"
From="Blue" To="Red"
AccelerationRatio="1"
Storyboard.TargetProperty="(StackPanel.Background).(SolidColorBrush.Color)"
FillBehavior="HoldEnd">
</ColorAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="StackPanel.MouseLeave">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
AutoReverse="False"
Duration="0:0:1"
From="Red" To="Blue"
AccelerationRatio="1"
Storyboard.TargetProperty="(StackPanel.Background).(SolidColorBrush.Color)"
FillBehavior="HoldEnd">
</ColorAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
</StackPanel>
</Grid>
7
bir WPF Izgara kontrolü hem MouseEnter
ve MouseLeave
olayları destekler: Burada
1
MouseEnter ve MouseLeave olayları işlenebilir, kodunuzu kontrol edebilirsiniz e.handled = flase;
2
Daha basit: İki olay PointerMoved ve PointerExited uygulayabilirsiniz. Benim için çalıştı.
İlgili konular
"IsMouseOver özelliğini benim tarzımda kullanmak istemiyorum": neden? Tam olarak ne yapmaya çalışıyorsun? –
Neden MouseEnter ve MouseLeave sizin için çalışmıyor? – Bubblewrap