gpt4 book ai didi

c# - 使用 PointToScreen 在 wpf 中查找控件的位置

转载 作者:行者123 更新时间:2023-11-30 13:26:24 55 4
gpt4 key购买 nike

我试图在主窗口中找到用户控件的相对坐标。我尝试使用“Control.PointToScreen()”方法但没有成功。每次我这样做时,我都会得到一个异常:

System.InvalidOperationException:此视觉对象未连接到 PresentationSource

我认为这与我在视觉效果正确呈现之前调用 pointToScreen 有关,因为我已经在我的 Mains Constructor 中调用该方法。

无论如何,我想听听你们中是否有人有提示/解决方案/想法我可以如何解决这个问题。

只是为了弄清楚我要做什么,我的控件包含一个照片控件,我需要它在我的主控件内的确切位置,因为我想使用这些坐标在上面创建控件的副本它

使用 PointToScreen 进行试验。

最佳答案

在您的代码中注册 UserControl 的 Loaded 事件。这应该可以修复当您尝试获取位置时视觉效果尚未呈现的错误。

YourControl.Loaded += ControlLoaded;

public void ControlLoaded(object sender, EventArgs e){
Console.WriteLine(YourControl.PointToScreen(new Point(0,0));
}

编辑

既然你想要你的控件相对于你的窗口的位置,最好试试那个。

YourControl.TransformToAncestor(YourWindow).Transform(new Point(0,0))

关于c# - 使用 PointToScreen 在 wpf 中查找控件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24802945/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com