如何防止 WPF 触发器在退出时重置原始值



我有一个使用触发器的鼠标悬停选择列表视图:

<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>

最新更新