我在Canvas
内有一个UserControl
可以围绕它进行平移。我希望每次用户平移画布时能够知道UserControl的左上角坐标相对于画布的左上角是什么,这样我就可以用该信息更新另一个用户控件。
谢谢!
答案 0 :(得分:1)
我相信您可以使用TransformToAncestor(...)
方法实现您想要的效果。这将为您提供可用于获取偏移的变换。据我了解,如果您从Canvas
检索转换到UserControl
然后将其应用到(0,0)的位置,那么您应该得到您的偏移量。
所以代码应该类似于:
GeneralTransform transform = canvas.TransformToAncestor(this);
Point offset = transform.Transform(new Point(0, 0));
canvas
是Canvas
控件,而this
是UserControl
。
有关详细信息,请参阅链接的MSDN文档。