2012-01-28 74 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