2012-05-15 104 views
0

我知道有幾個如何在故事板包含目標時動畫的例子。例如動畫化按鈕的寬度或矩形的顏色。使用動畫板動畫屬性

我想用動畫板動畫一個屬性,並且該屬性碰巧綁定到其他東西。因此,我有類似:

XAML:

<Window.Resources> 
    <Storyboard x:Key="sbVolume"> 
     <DoubleAnimation Storyboard.TargetProperty="{Binding SbVolumeValue}" To="40">   
     </DoubleAnimation> 
    </Storyboard> 

後面的代碼:(我也執行INotifyPropertyChanged)

double _SbVolumeValue; 
    public double SbVolumeValue 
    { 
     get 
     { 
      return _SbVolumeValue; 
     } 
     set 
     { 
      _SbVolumeValue = value; 
      OnPropertyChanged("SbVolumeValue"); 
     } 
    } 

當我設置動畫故事板是得到異常:

沒有爲'System.Windows.Media.Animation.DoubleAnimation'指定目標。

我不想動畫一個目標我只是想動畫我的財產。我怎樣才能做到這一點?

+0

也許[Storyboard.TargetName](http://msdn.microsoft.com/en-us/library/system.windows.media.animation.storyboard.targetname.aspx)中的* Remarks *部分有一些幫助。它解釋瞭如果您沒有在Storyboard中指定動畫的目標對象會發生什麼。 – Clemens

回答

0

對於TargetName錯誤你得到,你應該告訴我們在哪兒實際上是越來越應用的故事板的XAML代碼...

同時我相信,

Storyboard.TargetProperty="{Binding SbVolumeValue}" 

...是不是一個有效的代碼!這應該與目標依賴項屬性的名稱一起指定,並且無限制值通過Binding

所以像...

Storyboard.TargetProperty="Width" 

... 是正確的但類似....

Storyboard.TargetProperty="EmployeeName" 

... 是不正確的,就好像它是不是依賴屬性。

我希望我很清楚!

+0

我知道......這意味着它將不可能單獨爲一個屬性創建動畫?那正是我想要完成的。 –

+0

您無法爲非依賴項屬性設置動畫。你也不能通過綁定動畫。另外,當通過觸發器應用時,故事板將恢復到特性的原始值(即0),或者通過鎖定該特性以防止該特性對該特技的任何其他類型的修改而始終保持在To值(40)。 –