2017-09-14 40 views
0

私はキャンバスオブジェクト "CanvasContain"に多くのUI要素を持っています。マウスを動かすと、そのキャンバス内のすべてのUI要素をオフセットしたいと思います。マウスの移動でキャンバスの子の位置を変更するにはどうすればよいですか?

foreach(UIElement child in CanvasContain.Children) 
{ 
    if (child != null) 
    { 
     Canvas2.Offset -= position - LastMousePosition; 
     Canvas3.Offset -= position - LastMousePosition; 
    } 
} 

しかし、私はそれが動作していないchild.offsetにしようとすると:私はそれが正常に動作している、キャンバスの名前で試してみました。オフセットを動的に変更するにはどうしたらいいですか?あなたはそれぞれの子のためのキャンバスleftとtopプロパティを調整する必要が

+0

btw、私はzommingとパンのためにZoomableCanvasを使用しています – srinivas

答えて

2

foreach(UIElement child in CanvasContain.Children) 
{ 
    double x = Canvas.GetLeft(child); 
    double y = Canvas.GetTop(child); 
    Canvas.SetLeft(child, x - (position.X - LastMousePosition.X)); 
    Canvas.SetTop (child, y - (position.Y - LastMousePosition.Y)); 
} 

注私は必要ありませんchild != nullためのテストを落としました。

関連する問題