【问题标题】:WPF- Resize window as per resolution when moved from one monitor to another(Dual monitor system)WPF-从一台显示器移动到另一台显示器时根据分辨率调整窗口大小(双显示器系统)
【发布时间】:2021-02-05 09:40:58
【问题描述】:

目前,我正在尝试根据屏幕分辨率调整窗口大小。 考虑第一台显示器分辨率-1366x768 第二台显示器分辨率 - 1920x1080。

假设我的窗口大小覆盖了第一台显示器分辨率的 60%。 当这个窗口从第一台显示器拖到第二台时,我想根据第二台显示器的分辨率调整窗口大小。

是否有任何事件或方法可以用来实现这一点。

【问题讨论】:

标签: c# wpf windows resize


【解决方案1】:

您可以使用DpiChanged事件,当您将窗口移动到具有不同分辨率的显示器时会调用该事件。

事件参数包含 e.DeviceDpiOlde.DeviceDpiNew

你可以用它来计算你想调整你的窗口大小 或者您可能想使用e.SuggestedRectangle从操作系统获取新尺寸的建议。

如果你想得到当前显示器的分辨率,使用

Screen.GetBounds(this).Height;
Screen.GetBounds(this).width;

【讨论】:

  • 感谢 DarkDuck 的建议。我曾尝试使用 DPI 更改事件。但是,即使在不同的分辨率下,当窗口在监视器上移动时,Windows 也不会调用此事件。我已经使用 OnLocationChanged 事件实现了这一点。我正在阅读所有者显示名称,如果更改,则使用更新的高度和宽度。
猜你喜欢
  • 1970-01-01
  • 2022-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-07
  • 2014-12-13
相关资源
最近更新 更多