2011-11-10 66 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

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