2012-04-05 94 views
4

我有2个动画定义为在我的网格中闪烁单元格值,其中一个值增加,另一个值减小。在Xaml中控制WPF动画

当运行在调试应用程序,我看到沿线的输出窗口一个巨大的警告数量: -

无法因为指定的故事板从来没有应用于此对象的交互控制执行操作。行动=“停止”;故事板= 'System.Windows.Media.Animation.Storyboard';

我的动画是通过数据触发如下触发: -

enter image description here

故事板如下:

enter image description here

鉴于它好像StopStoryboard是问题,即没有故事板运行需要停止。另外我的理解是,在WPF中开始一个新的动画将取代任何已经运行的动画。但是,如果我从两个DataTriggers中删除StopStoryboard,我会遇到另一个问题。这一次只有BidDownStory会触发。我永远不会看到细胞Animate Blue。

另一个有趣的事情有时候会发生。如果动画发生在屏幕外(即列不可见),并且滚动以便该列可见,我会按预期看到动画。但是,如果我然后滚动网格回到列再次关闭屏幕动画继续运行,但对网格中的不同列!

如果您可以提供任何帮助解决这些问题,将不胜感激。

感谢

回答

5

你可以尝试这样的事情,而不是:

<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> 
+0

感谢CodeNaked。这解决了警告。我简直不敢相信自己没有想到它。现在我只需要弄清楚为什么滚动导致错误的单元格动画。 – user630190 2012-04-05 12:28:54