我有一个ListView
定义为这样一个ItemContainerStyle
:WPF触发/样式替代另一个
<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>
如果测试为真,那么一个可爱的小动画渐变被发挥出来。除了当我将鼠标移动到“test is true”的行上时,动画停止并且鼠标悬停在样式上时,这一切都可以正常工作。
任何想法如何在我的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
定义。在ItemContStyle
中定义了DataTrigger
。
我试图消除MouseOver
风格触发,但我相信Listview
已经定义了,因此我将覆盖动漫DataTrigger
默认MouseOver
风格,没有工作。
你的*时髦的动画*动画是什么? “前景”属性呢?你的'DataTrigger'定义在哪里?在默认的'ListViewItem'风格,还是它的本地风格?更重要的是:IsMouseOver触发器和DataTrigger是否在*相同*风格中定义? – gehho 2010-05-18 07:07:53
gehho ...感谢您的期待。原始问题的答案。 – ozczecho 2010-05-18 07:33:26
嗯,我没有看到错误。抱歉... – gehho 2010-05-18 12:05:08