Ada*_*ice 18
这样做有点不直观,但可以做到.这是一个两步的过程.首先,您要使用的TransformToVisual功能(来自MSDN):
返回一个转换对象,可用于将坐标从UIElement转换为指定对象.
TransformToVisual将产生一个GeneralTransform将执行从任何UIElement到任何其他UIElement的转换(假设它们都存在于同一个可视树中).这听起来像你想要的是从...的转变RootVisual.
var transform = Application.RootVisual.TransformToVisual(myUiElement);
Run Code Online (Sandbox Code Playgroud)
在transform现在的对象是可以使用在相同的方式改变任何事情的一般转化myUiElement相对于转化RootVisual
下一步是使用该变换转换点.
var myUiElementPosition = transform.Transform(new Point(0,0));
Run Code Online (Sandbox Code Playgroud)
在myUiElementPosition现在是一个Point已转换并应在的位置UIElement,你要寻找的. new Point(0,0)是因为我假设你想要相对于左上角给出的位置RootVisual.