[英]Smooth ExitAction in WPF Trigger using Storyboard
我有一個WPF應用程序,在這里我想覆蓋難看的默認WPF樣式。 我創建了Styles.xaml詞典,在這里我幾乎完成了樣式,但是在動畫和不同視覺狀態(觸發)之間的平滑過渡方面存在一些問題。
我的挑戰之一是我不想將任何C#事件處理程序或其他C#代碼綁定到樣式。
在這里,我在觸發器上提供了一些代碼:
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsEnabled" Value="True" />
<Condition Property="IsMouseOver" Value="True" />
<Condition Property="IsPressed" Value="False" />
</MultiTrigger.Conditions>
<MultiTrigger.EnterActions>
<BeginStoryboard Name="MouseOverStoryboard">
<Storyboard Duration="0:0:0.25" SlipBehavior="Grow">
<ColorAnimation Storyboard.TargetName="InnerBorder"
Storyboard.TargetProperty="Background.(SolidColorBrush.Color)"
To="{StaticResource White}"
BeginTime="0:0:0" Duration="0:0:0.25" />
<DoubleAnimation Storyboard.TargetName="InnerBorder"
Storyboard.TargetProperty="Opacity"
To="0.3"
BeginTime="0:0:0" Duration="0:0:0.25" />
</Storyboard>
</BeginStoryboard>
</MultiTrigger.EnterActions>
<MultiTrigger.ExitActions>
<RemoveStoryboard BeginStoryboardName="MouseOverStoryboard" />
</MultiTrigger.ExitActions>
</MultiTrigger>
為了使動畫更流暢,我添加了EnterAction並將Storyboard與時序一起放置在此處,因此輸入動畫很流暢且看起來不錯。
我的第一個問題是關於執行BeginStoryboard時如何恢復默認顏色,但后來我意識到可以使用RemoveStoryboard。
現在我真的不知道我的想法出了點-如何制作流暢的退出動畫? 我不應該使用RemoveStoryboard嗎?
請提供建議。 謝謝。
PS我不使用VisualStateManager,因為缺乏狀態,我不想為此實現自己的控件。
如何添加一個新的動畫對象,該對象在輸入動作動畫持續時間過去后開始。 或通過添加一個Storyboard
來還原您的EnterAction
來使用觸發器的ExitAction
屬性。 或者您可以嘗試將Fillbehavior
屬性設置為“停止...”。
另一個選擇是使用EventSetter
來捕獲RoutedEvents
例如MouseEnter
和MouseLeave
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.