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 回答