首页 >后端开发 >C++ >如何在多屏幕设置中获取 WPF 中的当前屏幕尺寸?

如何在多屏幕设置中获取 WPF 中的当前屏幕尺寸?

Susan Sarandon
Susan Sarandon原创
2025-01-05 16:22:40272浏览

How to Get the Current Screen Size in WPF on a Multi-Screen Setup?

在 WPF 中获取当前屏幕大小

您的问题重点是确定多屏设置中当前屏幕的大小,其中所有屏幕可能不使用相同的分辨率。虽然您提到了对主屏幕使用 SystemParameters.PrimaryScreenWidth 和 SystemParameters.PrimaryScreenHeight,但获取当前屏幕的大小确实很重要。

为了解决这个问题,您可以使用 WpfScreen,这是一个封装的包装类System.Windows.Forms 中的 Screen 类。此类提供了多种方法来检索屏幕相关信息:

  • AllScreens(): 返回表示所有屏幕的 WpfScreen 对象的枚举。
  • GetScreenFrom(Window window): 检索指定的 WpfScreen window.
  • GetScreenFrom(Point point): 获取包含给定点的屏幕的 WpfScreen。
  • Primary: 返回主屏幕.

此外,WpfScreen 还提供以下功能properties:

  • DeviceBounds: 与设备无关的像素的屏幕边界。
  • WorkingArea: 屏幕上的可用工作区域与设备无关像素。
  • IsPrimary: 指示屏幕是否为主显示器。
  • DeviceName: 显示器的设备名称。

用法示例:

// Get the primary screen's size
var primaryScreen = WpfScreen.Primary;
Console.WriteLine("Primary Screen: {0} x {1}", primaryScreen.DeviceBounds.Width, primaryScreen.DeviceBounds.Height);

// Get the current window's screen size
var currentWindow = new Window();  // Replace this with the actual window object
var currentScreen = WpfScreen.GetScreenFrom(currentWindow);
Console.WriteLine("Current Window's Screen: {0} x {1}", currentScreen.DeviceBounds.Width, currentScreen.DeviceBounds.Height);

// Get the screen containing a specified point
var point = new Point(500, 300);
var containingScreen = WpfScreen.GetScreenFrom(point);
Console.WriteLine("Screen Containing Point: {0} x {1}", containingScreen.DeviceBounds.Width, containingScreen.DeviceBounds.Height);

以上是如何在多屏幕设置中获取 WPF 中的当前屏幕尺寸?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn