2012-10-17 49 views
1

我有一個非常具體的用例,以及一個非常奇怪的問題在實現它。在我的Metro應用程序中,我有幾張圖片,我想要在用戶交互上進行移動。比方說,一個棋子的圖像。既然,我不能按照這裏的指針運動來設置動畫,我正在使用故事板動畫來完成任務。地鐵應用程序中的故事板動畫和附加屬性

所以,我基本上有一個畫布爲整個遊戲板,並在底部角落的一個小棋子圖像。初始設置很簡單,因爲我可以手動設置棋子的頂部和左側屬性。移動棋子,我只是計算新的頂部和左側屬性取決於移動。例如,如果玩家向上移動棋子,Top的值由(Canvas.Height/8)改變,但是Left屬性保持不變。現在,直到這裏,一切都很好。唯一的問題是,這會導致圖像從初始位置跳到最終位置,而不是平滑移動。

所以,我創建了動畫頂部和左側位置的故事板,如下所示。

<Storyboard x:Key="storyboard"> 
    <DoubleAnimation x:Name="playerLeftAnimation" Storyboard.TargetName="playerPiece" 
        Storyboard.TargetProperty="Canvas.Left" 
        EnableDependentAnimation="True"  
        Duration="0:0:2" /> 
    <DoubleAnimation x:Name="playerTopAnimation" Storyboard.TargetName="playerPiece" 
        Storyboard.TargetProperty="Canvas.Top" 
        EnableDependentAnimation="True"  
        Duration="0:0:2" /> 
</Storyboard> 

如果我使用這種方法處理像Fontsize這樣的普通依賴屬性,這種方法很好。這裏playerPiece是圖片的名字。畫布未命名。但是,這裏給我例外說「無法解析故事板的目標屬性」。我是否錯過了要設置的東西?或者我應該嘗試其他方式來動畫化圖像的位置?如果是的話,任何想法,這是最好的方式?

回答

2

解決,感謝MSDN。只需要提及targetproperty爲「(Canvas.Left)」而不是「Canvas.Left」。