2

コントロール テンプレートに次のデータ トリガーを設定しています。

<DataTrigger Binding="{Binding Path=IsDragged}"
             Value="True">
    <DataTrigger.EnterActions>
        <BeginStoryboard Storyboard="{StaticResource Active}" />
    </DataTrigger.EnterActions>
    <DataTrigger.ExitActions>
        <BeginStoryboard Storyboard="{StaticResource Unactive}" />
    </DataTrigger.ExitActions>
</DataTrigger>

通常、少なくとも 1 回 (常にではありません) 起動し、ある時点で停止します。いくつかの追加の興味深いメモ:

  • 同じプロパティが MultiDataTrigger に設定されています。このトリガーは常に発生します。
  • 同じストーリーボードが別のトリガーで参照されており、このトリガーが失敗した後も引き続き実行されます

編集: MultiDataTriggers は次のように設定されます。

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding Path=IsActive}"
                   Value="True" />
        <Condition Binding="{Binding Path=IsDragged}"
                   Value="False" />
        <Condition Binding="{Binding Path=IsInCart}"
                   Value="False" />
    </MultiDataTrigger.Conditions>
    <MultiDataTrigger.EnterActions>
        <BeginStoryboard x:Name="ShowTag_BeginStoryboard"
                         Storyboard="{StaticResource ShowTag}" />
    </MultiDataTrigger.EnterActions>
    <MultiDataTrigger.ExitActions>
        <BeginStoryboard x:Name="HideTag_BeginStoryboard"
                         Storyboard="{StaticResource HideTag}" />
    </MultiDataTrigger.ExitActions>
</MultiDataTrigger>
4

1 に答える 1

1

経験に基づいた推測ですが、以前にこのようなことに遭遇したことがあり、別のストーリーボードを開始する前に、各ストーリーボードを停止する必要があることがわかりました。

2 つのStopStoryboardアクションを DataTrigger に追加してみてください。1 つはアクティブなストーリーボードを停止し、もう 1 つは非アクティブなストーリーボードを停止します。

于 2009-07-27T16:49:00.873 に答える