我有一个使用触发器的鼠标悬停选择列表视图:
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="IsSelected" Value="True" />
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
但是,当鼠标移出时,触发器IsSelected
设置回 false,这在这里是不需要的。有没有办法使触发器仅在进入时设置而不在退出时重置?
这就是 EventTrigger 的用途:
与触发器不同,EventTrigger 没有状态终止的概念,因此一旦引发事件的条件不再为 true,操作就不会撤消。
例如,在您的情况下:
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="IsSelected">
<DiscreteBooleanKeyFrame KeyTime="0" Value="True" />
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>