首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义EventTrigger用于动画使用RoutedEvent

自定义EventTrigger用于动画使用RoutedEvent
EN

Stack Overflow用户
提问于 2013-05-10 19:51:07
回答 2查看 406关注 0票数 0

这就是我想要达到的目标。

是售货亭的条形码阅读器。

  • 主屏幕textBlock应该说“扫描条形码”
  • 条形码后读
  • 连接到远程Server以检查条形码是否符合条件
  • 如果它符合主textBlock的条件,应该说“你赢了……”1分钟,显示按钮打印获胜。
  • 如果它不合格,它应该说5秒“请与收银员核对”
  • 如果它是错误的条形码,它应该说5秒“错误的条形码,再试一次”。
  • 它应该始终返回到“扫描条形码”结尾。

我知道最好在文本块上做动画,但是如何从代码中触发动画呢?

这可能是一个更容易的方式来完成这一点,请告诉我,如果有。

我用VB编写代码,是个老派,但我可以轻松地在网上转换你的C#代码。

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2013-05-10 19:55:54

我会使用TextChanged事件,所以一个例子应该是这样的。

代码语言:javascript
复制
    private void txScanBox_TextChanged(object sender, EventArgs e)
    {
            //Do whatever
    return;

    }
票数 0
EN

Stack Overflow用户

发布于 2013-05-10 21:00:58

现在我正在使用这个,如果您有更好的方法,请告诉我。

在xaml中,我创建了3个没有触发器的故事级。

代码语言:javascript
复制
<Window.Resources>
    <Storyboard x:Key="WrongBarcode">
        <StringAnimationUsingKeyFrames Storyboard.TargetProperty="(TextBlock.Text)" Storyboard.TargetName="txtbScan">
            <DiscreteStringKeyFrame KeyTime="0:0:0" Value="Wrong Barcode"/>
            <DiscreteStringKeyFrame KeyTime="0:0:4" Value="Scan your barcode"/>
        </StringAnimationUsingKeyFrames>
    </Storyboard>
    <Storyboard x:Key="Win">
        <StringAnimationUsingKeyFrames Storyboard.TargetProperty="(TextBlock.Text)" Storyboard.TargetName="txtbScan">
            <DiscreteStringKeyFrame KeyTime="0:0:0" Value="Hurray You Won"/>
            <DiscreteStringKeyFrame KeyTime="0:0:25" Value="Scan your barcode"/>
        </StringAnimationUsingKeyFrames>
    </Storyboard>
    <Storyboard x:Key="Unqulified">
        <StringAnimationUsingKeyFrames Storyboard.TargetProperty="(TextBlock.Text)" Storyboard.TargetName="txtbScan">
            <DiscreteStringKeyFrame KeyTime="0:0:0" Value="Please Qualify your card at the Cashier."/>
            <DiscreteStringKeyFrame KeyTime="0:0:4" Value="Scan your barcode"/>
        </StringAnimationUsingKeyFrames>
    </Storyboard>
</Window.Resources>

然后在后面的代码

代码语言:javascript
复制
Private Sub Window_KeyDown(sender As Object, e As KeyEventArgs)
    Static curBarcode As String
    If e.Key = 6 Then 'Found that it hits key6 at the end of each barcode read
        Select Case ValidateCard(curBarcode)
            Case 0
                Dim Unqulified As Storyboard = DirectCast(FindResource("Unqulified"), Storyboard)
                Unqulified.Begin(Me)
            Case 1
                Dim win As Storyboard = DirectCast(FindResource("Win"), Storyboard)
                win.Begin(Me)
            Case Else
                Dim WrongBarcode As Storyboard = DirectCast(FindResource("WrongBarcode"), Storyboard)
                WrongBarcode.Begin(Me)

        End Select

        'txtbScan.Text = "Scan your gift card."
        curBarcode = ""
    Else
        curBarcode = curBarcode & Mid(e.Key.ToString(), 2, 1)
        '


    End If
End Sub

我仍然需要改变获胜的文本,它有许多变化。我正在考虑添加一个更大的文本块,甚至是一个图像,并在代码中设置值和动画可见性。

请告诉我你的想法。

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16489838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档