ビジュアルの色のアニメーション化を開始するいくつかの DataTriggers を含む WPF Datatemplate があります。color プロパティが現在持っている実際の値からアニメーションを開始するにはどうすればよいですか?
現在アクティブな別のアニメーションがある可能性があるため、新しいアニメーションを開始することはできませんが、DataTriggers の ExitAction と RemoveStoryboard を使用してアニメーションを削除すると、position プロパティがデフォルト値に戻されます。
代わりに、一方を他方に引き継ぎたいと思います。
これは単純に実行できない WPF の制限ですか?
<DataTrigger Binding="{Binding Path=State}" Value="Active">
<DataTrigger.EnterActions>
<BeginStoryboard x:Name="activeStoryboard" HandoffBehavior="SnapshotAndReplace">
<Storyboard>
<ColorAnimation To="Green" FillBehavior="HoldEnd" Duration="00:00:0.25"
Storyboard.TargetName="stateBrush"
Storyboard.TargetProperty="Color" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<RemoveStoryboard BeginStoryboardName="activeStoryboard" />
</DataTrigger.ExitActions>
</DataTrigger>
<DataTrigger Binding="{Binding Path=State}" Value="Error">
<DataTrigger.EnterActions>
<BeginStoryboard x:Name="errorStoryboard" HandoffBehavior="SnapshotAndReplace">
<Storyboard>
<ColorAnimation To="Red" FillBehavior="HoldEnd" Duration="00:00:0.25"
Storyboard.TargetName="stateBrush"
Storyboard.TargetProperty="Color" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<RemoveStoryboard BeginStoryboardName="errorStoryboard" />
</DataTrigger.ExitActions>
</DataTrigger>