在Xaml中控制WPF动画

5
我在网格中定义了两个动画,一个用于值增加时闪烁单元格,另一个用于值减小时闪烁单元格。
在调试应用程序时,输出窗口会显示大量警告,例如:
无法执行操作,因为指定的Storyboard从未应用于此对象进行交互控制。;Action='Stop'; Storyboard='System.Windows.Media.Animation.Storyboard';
我的动画是通过以下数据触发器触发的:
(图片)
Storyboard如下:
(图片)
看起来StopStoryboard是问题所在,即没有需要停止的正在运行的Storyboard。而且,我理解WPF中启动新动画将替换已经运行的任何现有动画。但是,如果我从两个DataTrigger中删除StopStoryboard,则会出现另一个问题。这次只有BidDownStory会触发。我永远不会看到单元格以蓝色闪烁。
还有一件有趣的事情有时会发生。如果动画发生在屏幕外(即列不可见),然后滚动使该列可见,我会按预期看到动画。但是,如果我然后将网格滚动回列再次不可见,则动画将继续运行,但针对网格中的另一列!
如果您可以提供任何帮助来解决这些问题,将不胜感激。
谢谢
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>

谢谢CodeNaked。这解决了警告问题。如此简单,我简直不敢相信我自己没想到。现在我只需要弄清楚为什么滚动会导致错误的单元格动画即可。 - user630190

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接