5

グリッド内のセル値をフラッシュするように定義された 2 つのアニメーションがあります。1 つは値が増加するとき、もう 1 つは値が減少するときです。

デバッグでアプリケーションを実行すると、出力ウィンドウに次の行に沿って大量の警告が表示されます。

指定されたストーリーボードがインタラクティブ コントロール用にこのオブジェクトに適用されなかったため、アクションを実行できません。; アクション='停止'; Storyboard='System.Windows.Media.Animation.Storyboard';

私のアニメーションは、次のようにデータトリガーを介して起動されます:-

ここに画像の説明を入力

ストーリーボードは次のとおりです。

ここに画像の説明を入力

StopStoryboard が問題であるように思われる場合、つまり、停止する必要があるストーリーボードが実行されていません。また、WPF で新しいアニメーションを開始すると、既に実行されている既存のアニメーションが置き換えられることも理解しています。ただし、両方の DataTriggers から StopStoryboard を削除すると、別の問題が発生します。今回は、BidDownStory のみが起動します。セルが Animate Blue になることはありません。

別の興味深いことが時々起こっています。アニメーションが画面外で発生している (つまり、列が表示されていない) 場合、列が表示されるようにスクロールすると、期待どおりにアニメーションが表示されます。ただし、グリッドをスクロールして列が画面外に戻ると、アニメーションは引き続き実行されますが、グリッド内の別の列に対して実行されます!

これらの問題を修正するための助けを提供できる場合は、大歓迎です.

ありがとう

4

1 に答える 1

6

代わりに次のようなものを試すことができます。

<DataTrigger Binding="{Binding Path=RowData.Row.BidUp}" Value="True">
    <DataTrigger.EnterActions>
        <BeginStoryboard Storyboard="{StaticResource AnimateCellBlue}" />
    </DataTrigger.EnterActions>
    <DataTrigger.ExitActions>
        <BeginStoryboard Storyboard="{StaticResource AnimateCellRed}" />
    </DataTrigger.ExitActions>
</DataTrigger>
于 2012-04-05T11:10:27.640 に答える