私はそのように定義された を持っていListView
ますItemContainerStyle
:
<ListView Width="auto"
SelectionMode="Single"
ItemContainerStyle="{StaticResource ItemContStyle}"
....
次に、トリガーを含む、baseListViewStyle
に適用するいくつかの基本スタイルを定義しました。ListView
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 が true の場合、小さなフェード アニメーションが再生されます。「テストが真」の行にマウスを移動すると、アニメーションが停止し、マウスオーバースタイルが表示される場合を除いて、これはすべて機能します。
でそのスタイルをオーバーライドする方法はありますDataTrigger
か?
ティア
アップデート:
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