首页 > 解决方案 > WPF 问题仅在某些硬件配置上在辅助屏幕上创建窗口

问题描述

我正在使用标准建议来创建窗口并将其显示在辅助监视器上:

我使用以下内容来获取可用的屏幕:

Screen[] availableScreens = Screen.AllScreens;

提取目标屏幕的工作区域(在我的例子中是第二个屏幕,而不是主屏幕):

secondaryScreenWorkingArea = availableScreens[1].WorkingArea;

创建窗口时,根据工作区域设置位置属性(调用 Show() 之前):

Left = secondaryScreenWorkingArea.Left;
Top = secondaryScreenWorkingArea.Top;
Width = secondaryScreenWorkingArea.Width;
Height = secondaryScreenWorkingArea.Height;

关于窗口的其他一些注意事项:

下面是我测试过的不同配置的概要,其中只有一个行为不正确:

从上面的案例可以看出,这似乎是 Display scaling + Surface Go 的问题。在我的工作站上,我强制使用与 Surface Go 相同的分辨率(1800x1200)并将显示缩放设置为 150%,但无法复制 Surface Go 的问题

此外,我对另一台分辨率稍高 (1024x600) 的 USB 显示器进行了一些测试,发现同样的问题仅在 Surface Go 上出现,但这一次需要我在问题开始之前将显示缩放比例推至 200%在该配置中发生。

我尝试了几件事,但都没有为这个问题提供任何解决方案:

任何尝试的帮助或其他想法将不胜感激,不确定这是 WPF、Windows 10 还是 Microsoft Surface Go 问题。

标签: c#.netwpfwindows

解决方案


推荐阅读