私は WPF アプリケーションを持っています。ここでは、醜いデフォルトの WPF スタイルをオーバーライドしたいと考えています。私は Styles.xaml ディクショナリを作成しました。ここではスタイルをほぼ完成させましたが、アニメーションと異なる視覚状態 (トリガー) 間のスムーズな移行にいくつかの問題があります。
私の課題の 1 つは、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を使用していません。そのための独自のコントロールを実装したくありません。