【问题标题】:Animate single item in datatemplate动画数据模板中的单个项目
【发布时间】:2014-03-14 13:09:13
【问题描述】:

我试图在更新项目时在列表框上运行动画。 我的项目与 observablecollection (MVVM) 配合得很好,并且项目正在完美更新。 我已将此代码设置为列表框以运行动画,但它正在为列表框中的所有项目设置动画,我只想要实际更新的项目。

<DataTemplate.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded" SourceName="dockProjects">
    <BeginStoryboard>
        <Storyboard>
        <ColorAnimation Storyboard.TargetName="myAnimatedBackground" Storyboard.TargetProperty="Color" From="Orange" To="Transparent" Duration="0:0:2" RepeatBehavior="0:0:4" />
        </Storyboard>
    </BeginStoryboard>
</EventTrigger>

我们将不胜感激地接受任何帮助。谢谢斯科特

【问题讨论】:

  • 你怎么知道哪个项目被更新了?因为我的想法是使用 viewmodel 来通知更新了哪一个。然后在视图中,您可以使用绑定创建数据触发器。
  • 是的。不确定。我现在正在考虑。感谢 cmets

标签: c# wpf silverlight xaml expression-blend


【解决方案1】:

这只是一个伪答案,因为您的问题的答案太宽泛,需要很长时间才能详细介绍。最简单的答案是这样的……你需要在代码中手动访问相关的UIElement,并调用BeginAnimation方法来启动Animation。希望这就是您所需要的。

在最复杂的情​​况下,此调用可能位于AnimatedPanel 基类中,并且您的数据类型类可能具有特殊的自定义动画属性。例如,我有这样的设置并在从集合中删除元素时执行幻灯片动画,您必须延迟实际删除,执行动画并然后实际删除该项目。

【讨论】:

  • 抱歉离开了。我会尽快发表评论。欣赏它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-03
  • 1970-01-01
相关资源
最近更新 更多