画面上のオブジェクトをタッチで移動させる機能の実装
#wpdev_jp
前にもちょっとやりましたが、もうちょっと汎用版。
1.以下の関数を実装
///////////////////////////////////////////////////////
// 【処理】 オブジェクトを移動する方法
///////////////////////////////////////////////////////
private void image_ManipulationDelta(
object sender, ManipulationDeltaEventArgs e)
{
//選択されたオブジェクトを取得します
FrameworkElement obj = sender as FrameworkElement;
//これまでの移動情報を取得します
TranslateTransform tt;
if (obj.RenderTransform as TranslateTransform == null)
tt = new TranslateTransform();
else
tt = obj.RenderTransform as TranslateTransform;
//移動情報をドラッグ分だけ移動します
tt.X += e.DeltaManipulation.Translation.X;
tt.Y += e.DeltaManipulation.Translation.Y;
//移動情報を適用します
obj.RenderTransform = tt;
}
2.画面上にタッチで移動させたいオブジェクトを配置
3.オブジェクトの ManipulationDelta イベントで image_ManipulationDelta 関数を選択する
以上で完了です。
MouseMove ではなく ManipulationDelta なのでスムースに追従してくれます。
以上!
ま、備忘録です。