我會盡量使它儘可能簡單。在故事板中綁定到'To'
我想這樣做:
<Storyboard x:Name="MoveToLocation">
<DoubleAnimation Duration="0:0:0.5" To="{Binding X}" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="grid" d:IsOptimized="True"/>
</Storyboard>
正如你可能已經注意到在綁定「到」屬性不起作用。它似乎只接受靜態值。
如何用MVVM做這個動畫?我不能放入靜態數據,因爲它會改變。
謝謝。
第二段是我需要你詳細說明的,謝謝。當我今晚回家時我會試試這個。那麼你是否暗示我應該在對象本身中包含一個Storyboard實例(而不是在xaml中)?似乎有點奇怪,但如果這是我必須做的,那麼我會做到這一點。 – Peanut 2010-06-09 11:17:17
我想我仍然有點困惑 - 我可以將這個整個'對象'包裝到一個用戶控件中,並創建自己的屬性'To',這很好。但是,在某個地方,我仍然需要在故事板中設置(並重新設置)'To'的屬性 - 如您所說,它不可綁定。 – Peanut 2010-06-10 00:04:28
@Peanut:一旦你創建了一個UserControl來封裝這個特定的UI行爲,你可以直接使用「代碼隱藏」操作控件。有時綁定不是答案,你實際上必須編寫代碼來完成這項工作。 – AnthonyWJones 2010-06-10 07:20:35