在平移的画布上获取坐标

时间:2011-11-10 08:26:21

标签: c# wpf user-controls coordinates

我在Canvas内有一个UserControl可以围绕它进行平移。我希望每次用户平移画布时能够知道UserControl的左上角坐标相对于画布的左上角是什么,这样我就可以用该信息更新另一个用户控件。

谢谢!

1 个答案:

答案 0 :(得分:1)

我相信您可以使用TransformToAncestor(...)方法实现您想要的效果。这将为您提供可用于获取偏移的变换。据我了解,如果您从Canvas检索转换到UserControl然后将其应用到(0,0)的位置,那么您应该得到您的偏移量。

所以代码应该类似于:

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

canvasCanvas控件,而thisUserControl

有关详细信息,请参阅链接的MSDN文档。