使用附加属性在XAML中动画化WPF元素?

时间:2012-01-28 20:13:11

标签: c# wpf xaml animation

我的动画由我的ViewModel中的属性触发。如果我将TargetProperty设置为Width,则以下代码实际上可用于增长图像。

接下来,我想实际上下移动图像。为此,我在图片周围添加了Canvas组件,以便能够根据Canvas.Top属性制作动画。在图像上设置Canvas.Top会将其移动到我想要的位置。

但是,如果我将StoryBoard.TargetProperty设置为Canvas.Top,则会收到错误消息:

  

无法解析属性路径中的所有属性引用   Canvas.Top。

<Style x:Key="LoadingImageAnimation" TargetType="{x:Type Image}">
  <Style.Triggers>
    <DataTrigger Binding="{Binding IsLoading}" Value="True">
      <DataTrigger.EnterActions>
        <BeginStoryboard>
          <Storyboard>
            <DoubleAnimation From="10" To="250" AutoReverse="True" Duration="0:0:30"
                             Storyboard.TargetProperty="Canvas.Top"/>
          </Storyboard>
        </BeginStoryboard>
      </DataTrigger.EnterActions>
    </DataTrigger>
  </Style.Triggers>
</Style>

我的方法是完全关闭,还是只是找到附属物?

1 个答案:

答案 0 :(得分:17)

Property Path Syntax上进行了一些挖掘。解决方案实际上很简单..需要添加括号“(Canvas.Top)”。

动画并不像我想的那样顺畅..但至少它现在有效。