WPF动画不会重演

时间:2014-05-08 05:11:49

标签: c# wpf animation

有一篇MSDN文章专门解决了我的问题,但在我的案例中没有提供解决方案:

http://msdn.microsoft.com/en-us/library/aa970493(v=vs.110).aspx

我想从我的视图模型中触发动画,其中我淡出一个文本块,然后淡入另一个文本块,看起来像文本正在更新。我需要连续3次运行这个动画。如果我可以连续3次将Animate属性设置为“On”并且它将重复启动动画,那将会很好。但这似乎不起作用。

下一个最佳选择是在动画完成时通知我的ViewModel,允许我将Animate属性设置为“Off”,然后将其更改回“On”。这似乎有两个原因。如果在同一方法中设置“关闭”和“打开”,则调用View似乎不会更新属性,直到线程方法执行完成为止。第二个问题是动画的已完成事件是从未被调用 ...这对我来说是一个持续存在的问题。

还有其他建议吗?

以下是代码示例:

<DataTemplate.Triggers>
    <DataTrigger Binding="{Binding Animate}" Value="On">
        <DataTrigger.EnterActions>
            <BeginStoryboard>
                <Storyboard>
                    <!-- Show one textblock and hide the other -->
                    <DoubleAnimation
                            Storyboard.TargetName="txtMessage"
                            Storyboard.TargetProperty="Opacity"
                            To="1.0" Duration="0:0:0" />
                    <DoubleAnimation
                            Storyboard.TargetName="txtMessage2"
                            Storyboard.TargetProperty="Opacity"
                            To="0.0" Duration="0:0:0" />

                    <!-- Now animate the text blocks back to their original setting -->
                    <DoubleAnimation
                            Storyboard.TargetName="txtMessage"
                            Storyboard.TargetProperty="Opacity"
                            From="1.0" To="0.0" Duration="0:0:1"
                            Completed="Animation_Completed" />
                    <DoubleAnimation
                            Storyboard.TargetName="txtMessage2"
                            Storyboard.TargetProperty="Opacity"
                            From="0.0" To="1.0" Duration="0:0:1"
                            BeginTime="0:0:1"
                            Completed="Animation_Completed" />
                </Storyboard>
            </BeginStoryboard>
        </DataTrigger.EnterActions>
    </DataTrigger>
</DataTemplate.Triggers>

同样,由于某种原因,动画完成处理程序永远不会被击中......

更新了5/8以更具体地说明我需要动画制作的内容。

0 个答案:

没有答案