C# 我能否从触发器中识别导致WPF中代码属性更改的路由事件?
我在XAML中有以下样式的触发器,根据正常工作的路由事件更改属性C# 我能否从触发器中识别导致WPF中代码属性更改的路由事件?,c#,wpf,xaml,triggers,propertychanged,C#,Wpf,Xaml,Triggers,Propertychanged,我在XAML中有以下样式的触发器,根据正常工作的路由事件更改属性 <Style.Triggers> <EventTrigger RoutedEvent="MouseDown"> <BeginStoryboard> <Storyboard> <ObjectAnimationUsingKe
<Style.Triggers>
<EventTrigger RoutedEvent="MouseDown">
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{StaticResource ThumbnailItemBackgroundSelected}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{StaticResource ThumbnailItemBorderSelected}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{StaticResource ThumbnailItemBackgroundMouseHover}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{StaticResource ThumbnailItemBorderMouseHover}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
我能否以任何方式识别导致代码属性更改(例如后台)的路由事件(MouseDown或MouseDown)?您可能无法使用OnPropertyChanged获取MouseEnder和MouseDown事件。您应该分别使用MouseEnter和MouseDown事件,并分别在这些事件中调用代码。 如下所示:Input=>下面是一个文本框
private void Input_MouseEnter(object sender, MouseEventArgs e){
Input.Text = "Mouse Entered";}
private void Input_MouseLeave(object sender, MouseEventArgs e){
Input.Text = "Mouse Left";}
你能详细说明一下为什么需要这些信息吗?如果不检查事件名称,可能有更好的解决方案。根据事件属性的更改,我想更新其他元素。由于同一属性在不同事件中更改了两次,因此它不符合我的要求感谢提供此信息。然而,它将不符合我在先前评论中提到的要求。
private void Input_MouseEnter(object sender, MouseEventArgs e){
Input.Text = "Mouse Entered";}
private void Input_MouseLeave(object sender, MouseEventArgs e){
Input.Text = "Mouse Left";}