2012-02-13 107 views
0

我想完成以下場景。我有一個帶有CompositeTransform的UIElement,我想拖動屏幕。另外,當我點擊它時,我希望它旋轉90度。所以, 我處理 點擊 在ManipulationStarted 在ManipulationDelta - >還有我增加Translate.X和Y通過e.DeltaManipulation.Translation.X和Y 在ManipulationCompletedWindows Phone 7 UIElement操作

當CompositeTransform.Rotation爲0,一切工作正常。然而,當它> 0(例如90)時,e.DeltaManipulation.Translation給出了相對於對象旋轉的值!所以,我試圖移動屏幕右側的UIElement,但它向上移動...

任何提示?

回答

0

我有綁定到畫布的位置值(頂部&左側)和旋轉值綁定到旋轉變換角度。在我在ManipulationDelta事件,我用這兩條線:

piece.Left = piece.Left + (Math.Cos(piece.Radians)*e.DeltaManipulation.Translation.X) - (Math.Sin(piece.Radians) * e.DeltaManipulation.Translation.Y); 
piece.Top = piece.Top + (Math.Cos(piece.Radians) * e.DeltaManipulation.Translation.Y) + (Math.Sin(piece.Radians) * e.DeltaManipulation.Translation.X); 

我要指出,我只有90度,同時旋轉。如果你有任意的角度,我認爲這是行不通的。但是如果你正在做任意角度的話,正弦和餘弦函數會讓你稍作修改。

另外,你說你想要一個提示...