我有一個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