[英]Skip storyboard cleanly in ControlTemplate
我有一個定義 ControlTemplate 的 ToggleButton 樣式。 我的 ToggleButton 在更改狀態時是動畫的,但是當我導航到新頁面時我不希望它動畫。 因此,我使用 SkipStoryboardToFill 在 Loaded 事件上添加了一個 EventTrigger 以避免這種行為,它可以滿足我的要求。
我現在唯一的問題是,當我添加一個新的 ToggleButton 時,它會嘗試跳過尚未啟動的情節提要,生成 Animation 警告(“無法執行操作,因為指定的 Storyboard 從未應用於此 ZA8CFDE6331BD59EB2ACZC 以進行交互控制。 ") 這似乎會影響我的應用程序的性能。
我可能可以解決這個問題,但我寧願解決實際問題。 有沒有辦法在我的 EventTrigger 中添加條件?
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="ToggleButton.Loaded">
<SkipStoryboardToFill BeginStoryboardName="checkedSB" />
<SkipStoryboardToFill BeginStoryboardName="uncheckedSB" />
</EventTrigger>
<DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource Self}}"
Value="true">
<DataTrigger.EnterActions>
<BeginStoryboard Name="checkedSB">
<Storyboard Storyboard.TargetName="Ellipse"
Storyboard.TargetProperty="Margin">
<ThicknessAnimation To="20 1 2 1" Duration="0:0:0.1" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard Name="uncheckedSB">
<Storyboard Storyboard.TargetName="Ellipse"
Storyboard.TargetProperty="Margin">
<ThicknessAnimation To="2 1 2 1" Duration="0:0:0.1"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</ControlTemplate.Triggers>
有沒有辦法在我的 EventTrigger 中添加條件?
簡短的回答:沒有。
引發相應事件時始終應用EventTrigger
。
如果您想有條件地觸發動畫,您應該切換到使用MultiDataTrigger
或以編程方式實現動畫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.