1

ビジュアルの色のアニメーション化を開始するいくつかの 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>
4

1 に答える 1

1

FillBehavior が Stop に設定されていても、2 番目のアニメーションを開始すれば機能するはずです。

msdn の次のセクションを確認してください: FillBehavior="Stop" and HandoffBehavior with Multiple Animations

于 2010-12-03T10:09:23.243 に答える