2012-01-28 112 views
6

我让我的动画工作,由ViewModel中的属性触发。如果我将TargetProperty设置为Width,则下面的代码实际上可用于生成图像。使用附加属性在XAML中动画WPF元素?

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

但是,如果我把我的StoryBoard.TargetPropertyCanvas.Top,我得到一个错误:

Cannot resolve all property references in the property path 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> 

是我的做法完全关闭,或者仅仅是寻找附加属性的事?

+2

尝试'Storyboard.TargetProperty =“(Canvas.Top)”'。 – 2012-01-28 20:30:58

回答

12

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

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

+0

+1我刚刚要发布。 – 2012-01-28 20:35:19