如何在WPF中获取控件的XY坐标?
这个代码块非常有用,但是,我使用MVVM,所以代码块对我来说没用 我想在不使用rootVisual的情况下得到X&Y如何在WPF中获取控件的XY坐标?,wpf,mvvm,controls,coordinates,Wpf,Mvvm,Controls,Coordinates,这个代码块非常有用,但是,我使用MVVM,所以代码块对我来说没用 我想在不使用rootVisual的情况下得到X&Y 谢谢并致以最良好的问候。我不确定我是否正确理解你的问题。您根本不想使用rootVisual,还是只想通过myVisual间接访问 大概是这样的: Point relativePoint = myVisual.TransformToAncestor(rootVisual) .Transform(new Point(0, 0
谢谢并致以最良好的问候。我不确定我是否正确理解你的问题。您根本不想使用rootVisual,还是只想通过myVisual间接访问 大概是这样的:
Point relativePoint = myVisual.TransformToAncestor(rootVisual)
.Transform(new Point(0, 0));
Window.Left为您提供x坐标,Window.Top为您提供Y坐标如果使用MVVM,您的ViewModel不应该关心视图,那么为什么要这样做?我想通过ViewModel在两个控件之间画一条线。这不是ViewModel的工作,您应该在视图中这样做。ViewModel应该只触发此操作(例如使用事件或messenger/mediator),而不是实际执行它。视图可以订阅代码隐藏中的事件以实际划定界限。
var parent = VisualTreeHelper.GetParent(myVisual) as UIElement;
Point relativePoint = myVisual.TransformToAncestor(parent)
.Transform(new Point(0, 0));