画面上のオブジェクトをタッチで移動させる機能の実装

#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 関数を選択する

image

以上で完了です。

MouseMove ではなく ManipulationDelta なのでスムースに追従してくれます。

imageimage

以上!

ま、備忘録です。