WPF 弹出控件在具有不同分辨率的两个显示器设置上的放置

发布于 2024-12-10 12:05:44 字数 222 浏览 0 评论 0原文

我在我的开发机器上使用两个具有不同分辨率的显示器。分辨率较小的显示器被配置为主显示器。如果我在辅助显示屏上最大化 WPF 应用程序并在底部显示弹出控件,则它会重新定位: 在此处输入图像描述

我猜,框架使用主显示器的较低分辨率来检查弹出窗口是否必须重新定位。 WPF 框架不会检查当前的显示分辨率还是我必须自己配置?

I use two displays with different resolutions on my development machine. The display with a smaller resolution is configured as primary display. If I maximize my WPF application on the secondary display and show a popup control at the bottom it appears repositioned:
enter image description here

I guess, the framework uses the lower resolution of the primary display to check if the popup window has to be repositioned. Doesn't the WPF framework check for the current display resolution or do I have to configure this myself?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

行至春深 2024-12-17 12:05:44

要在两个显示器上重新定位弹出控件,最好根据 MainWindow 的 PointToScreen 属性设置弹出控件 Horizo​​ntalVertical 偏移量

var mousePosition = Mouse.GetPosition(Application.Current.MainWindow);
var pointToScreen = Application.Current.MainWindow.PointToScreen(mousePosition);

_popup.Horizo​​ntalOffset = pointToScreen.X;
_popup.VerticalOffset = pointToScreen.Y;

For repositioning popup control on two monitor, better to set Popup control Horizontal and Vertical offset based on PointToScreen property of MainWindow

var mousePosition = Mouse.GetPosition(Application.Current.MainWindow);
var pointToScreen = Application.Current.MainWindow.PointToScreen(mousePosition);

_popup.HorizontalOffset = pointToScreen.X;
_popup.VerticalOffset = pointToScreen.Y;

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文