2011-11-10 217 views
0

我在UserControl內部有一個Canvas,可以平移。我希望能夠知道UserControl相對於Canvas左上角的左上角座標是什麼,每次用戶平移畫布時,都可以使用該信息更新另一個用戶控件。在平移畫布上獲取座標

謝謝!

+0

你的意思是你想在'UserControl'中的'Canvas'控件的偏移量? –

+0

是的,那正是我需要的 –

回答

1

我相信你可以通過使用TransformToAncestor(...)方法實現你想要的。這會給你一個你可以用來獲取偏移量的變換。據我瞭解,如果您檢索從CanvasUserControl的轉換,然後將其應用於(0,0)的位置,那麼您應該得到您的偏移量。

因此,代碼應該是這個樣子:

GeneralTransform transform = canvas.TransformToAncestor(this); 
Point offset = transform.Transform(new Point(0, 0)); 

哪裏canvas是您Canvas控制和this是你UserControl

有關更多信息,請參閱鏈接的MSDN文檔。

+0

太好了,那就是我想要的。謝謝斯萊德! –