2

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

<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,这在此处是不需要的。有没有办法让触发器只在输入时设置而不是在退出时重置?

4

1 回答 1

3

这就是EventTriggers的用途:

与 Trigger 不同,EventTrigger 没有状态终止的概念,因此一旦引发事件的条件不再为真,该操作将不会被撤消。

以您为例:

<EventTrigger RoutedEvent="MouseEnter">
    <BeginStoryboard>
        <Storyboard>
            <BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="IsSelected">
                <DiscreteBooleanKeyFrame KeyTime="0" Value="True" />
            </BooleanAnimationUsingKeyFrames>
        </Storyboard>
    </BeginStoryboard>
</EventTrigger>
于 2012-05-19T23:43:06.890 回答