我有一个ListView
这样ItemContainerStyle
定义的:
<ListView Width="auto"
SelectionMode="Single"
ItemContainerStyle="{StaticResource ItemContStyle}"
....
然后在 中baseListViewStyle
,我定义了一些基本样式以应用于我ListView
的 s,包括Style
触发器:
<Style x:Key="baseListViewStyle" TargetType="ListViewItem">
<Setter Property="Height" Value="20" />
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
Trigger
当鼠标悬停在该行上时,此处突出显示该行。好的。
我也有DataTrigger
一个ListViewItem
:
<Style.Triggers>
<DataTrigger Binding="{Binding IsTestTrue}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource SomeFunkyAnimation}" />
</DataTrigger.EnterActions>
</DataTrigger>
如果测试为真,则播放一个漂亮的小淡入淡出动画。这一切都有效,除非我将鼠标移到“测试为真”的行上,动画停止并显示鼠标悬停样式。
有什么想法可以覆盖我的风格DataTrigger
吗?
TIA
更新:
SomeFunkyAnimation
动画背景颜色。它的 xaml 在这里:
<Style x:Key="ItemContStyle" TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource baseListViewStyle}">
<Style.Resources>
<Storyboard x:Key="SomeFunkyAnimation" FillBehavior="Stop">
<ColorAnimation Storyboard.TargetProperty="Background.Color" RepeatBehavior="Forever" From="Red" To="Pink" Duration="0:0:3"/>
</Storyboard>
</Style.Resources>
MouseOver
触发器定义在baseListViewStyle
. 中DataTrigger
定义ItemContStyle
。
我尝试删除MouseOver
样式触发器,但这不起作用,因为我相信它已经定义Listview
了默认MouseOver
样式,因此它会覆盖我的DataTrigger
动画。