[英]WPF Style Triggers acting weird
我有一個通過標簽屬性改變其背景漸變的網格。 當我將標簽設置為“啟用”時,animation 工作正常,但問題是當我將標簽設置為“禁用”時,animation 無法啟動。 從“啟用”開始,我只能將 animation 顯示為“禁止”標簽,然后我不能將 go 返回“禁用”或“啟用”。
我錯過了什么或做錯了什么? 提前致謝
<Grid.Style>
<Style TargetType = "Grid">
<Style.Triggers>
<Trigger Property = "Tag" Value = "Disabled">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty = "Background.GradientStops[0].Color"
From = "{x:Null}"
To = "{StaticResource disabled_1}" Duration = "0:0:1" />
<ColorAnimation
Storyboard.TargetProperty = "Background.GradientStops[1].Color"
From = "{x:Null}"
To = "{StaticResource disabled_2}" Duration = "0:0:1" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
<Trigger Property = "Tag" Value = "Enabled">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty = "Background.GradientStops[0].Color"
From = "{x:Null}"
To = "{StaticResource enabled_1}" Duration = "0:0:1" />
<ColorAnimation
Storyboard.TargetProperty = "Background.GradientStops[1].Color"
From = "{x:Null}"
To = "{StaticResource enabled_2}" Duration = "0:0:1" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
<Trigger Property = "Tag" Value = "Prohibited">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty = "Background.GradientStops[0].Color"
From = "{x:Null}"
To = "{StaticResource prohibited_1}" Duration = "0:0:1" />
<ColorAnimation
Storyboard.TargetProperty = "Background.GradientStops[1].Color"
From = "{x:Null}"
To = "{StaticResource prohibited_2}" Duration = "0:0:1" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>
</Grid.Style>
您已經定義了動畫,但您還需要定義如何停止動畫以啟動其他動畫。
有兩種方法可以做到這一點。
ExitActions
。例子:
<Trigger Property = "Tag" Value = "Enabled">
<Trigger.EnterActions>
<BeginStoryboard Name="enabledsb">
// Removed for brevity
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<StopStoryboard BeginStoryboardName="enabledsb"/>
</Trigger.ExitActions>
</Trigger>
StopStoryboard
。例子:
<Trigger Property = "Tag" Value = "Disabled">
<Trigger.EnterActions>
<StopStoryboard BeginStoryboardName="enabledsb"/>
<BeginStoryboard Name="disabledsb">
// Removed for brevity
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.