2012-02-13 6 views
0

私は次のシナリオを達成したいです。私は画面上でドラッグしたいCompositeTransformを持つUIElementを持っています。さらに、私がそれをタップしているとき、それを90度回転させたい。 >そこに私は のWindows Phone 7のUIElement操作

CompositeTransform.Rotationが0である

ManipulationCompleted e.DeltaManipulation.Translation.XとY によってTranslate.XとYが増加しています、すべてのもの - だから、 私は タップを処理してい は ManipulationDeltaをManipulationStarted正常に動作します。それは> 0(例えば90)だときしかし、e.DeltaManipulation.Translationは、私は、オブジェクトの回転に相対値与えます!だから、...

任意のヒントを、私は、画面の右側にあるのUIElementを移動しようとしているが、それは上に移動しますか?

答えて

0

私はキャンバスとrotationtransform角度にバインドされた回転値にバインドされた位置の値(トップ&左)を持っています。私は一度に90度回転することを言及する必要があります

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); 

:私のManipulationDeltaイベントの間、私はこれらの2つの行を使用します。私はあなたが任意の角度を持っていれば、これはうまくいかないと思う。あなたが任意の角度をやっている場合でも、サインとコサイン関数は、少し編集してそこにあなたを取得します。