按样式设置的WPF Animate变换

时间:2013-08-11 09:08:37

标签: wpf animation transform

我制作了一个自定义WPF控件,定期替换其Children集合中的元素。控件继承自Grid,以允许正确拉伸子元素。

FrameworkElement类型有两个DependencyProperties(和相应的属性):CurrentElementNextElement。每次DispatcherTimer滴答时,CurrentElement将替换为NextElement,并为NextElement分配一个新元素,该元素将添加到Children集合中。它还引发了一个事件,我想在其中设置两个元素的动画以获得良好的过渡。

编辑:我编辑了我的问题,我在动画中没有做任何事情的初始问题是由我的实现中的其他东西引起的。我现在有另一个问题。

我的动画XAML看起来像这样:

<DoubleAnimation Storyboard.TargetProperty="CurrentElement.RenderTransform.(TranslateTransform.X)"
                 From="0" To="-1000" Duration="0:0:1" />

只要我在元素本身上定义RenderTransform,它就可以正常工作。但是,我最好将风格设置为RenderTransform:

<Style TargetType="{x:Type DockPanel}" x:Key="Gallery.Item">
   <Setter Property="RenderTransform">
      <Setter.Value>
         <TranslateTransform X="0" />
      </Setter.Value>
   </Setter>
</Style>

动画一开始就会出现异常:

  路径中的

'RenderTransform'属性值   'CurrentElement.RenderTransform。(0)'指向不可变的实例   'System.Windows.Media.TranslateTransform'。

0 个答案:

没有答案