0

ユーザーがバーコードをスキャンすると、バーコードに基づいてアニメーションが表示される単純なウィンドウがあります。

最初のアニメーションの後、Window_KeyDown イベントの受信を停止します。

バーコードを読み取る必要があるため、アニメーションはコードを介してトリガーされます。

これがストーリーボードです。

    <Storyboard x:Key="Win">
        <StringAnimationUsingKeyFrames Storyboard.TargetProperty="(TextBlock.Text)" Storyboard.TargetName="txtbScan">
            <DiscreteStringKeyFrame KeyTime="0:0:05" Value="Scan your barcode"/>
        </StringAnimationUsingKeyFrames>
    </Storyboard>

ここでコードを呼び出します。

                Dim win As Storyboard = DirectCast(FindResource("Win"), Storyboard)
                txtbScan.Text = "Hurray you won " & GetPrize(curBarcode)
                win.Begin(Me)

アニメーションが継続しているようで、次の入力イベントを受け取ることができません。

4

1 に答える 1

0

ええ、それは WPF の奇妙さです。nullアニメーションプロパティでアニメーションを呼び出すまで、アニメーションはクリアされません。これを試して:

// You have to run a 'null' animation to clear an animated property
win.BeginAnimation(TextBlock.TextProperty, null)

その趣旨の何か。(VB を適切にフォーマットする方法がわからない)。

編集

これを見てみましょうC#/WPFでアニメーションを停止する方法?

于 2013-05-30T19:54:36.803 に答える