复制
收藏
提问
全网
C#获取屏幕分辨率接口
6月前
理解问题C#获取屏幕分辨率接口
已完成理解「C#获取屏幕分辨率接口」
展开阅读网页
在C#中,获取屏幕分辨率可以通过多种方式实现,以下是一些常用的方法:
1. 使用Screen
类
Screen
类提供了关于显示器的信息,包括分辨率。以下是两种使用Screen
类获取分辨率的方法:
-
获取工作区尺寸:这会除去任务栏等占据屏幕空间的部分。
System.Drawing.Rectangle rec = Screen.GetWorkingArea(this); int SH = rec.Height; int SW = rec.Width;
-
获取主屏幕的完整尺寸:包括任务栏等占据空间的部分。
int SH = Screen.PrimaryScreen.Bounds.Height; int SW = Screen.PrimaryScreen.Bounds.Width;
2. 使用System.Windows.Forms.SystemInformation
类
这个类提供了系统信息,包括主显示器的尺寸(单位为像素)。
int xWidth1 = System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Width;
int yHeight1 = System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Height;
3. 使用SystemParameters
类
这个类可以获取所有屏幕的屏幕尺寸,适用于多屏幕设置。
int totalWidth = SystemParameters.VirtualScreenWidth;
int totalHeight = SystemParameters.VirtualScreenHeight;
4. 考虑DPI缩放
在Windows 10等支持DPI缩放的系统中,直接获取的屏幕尺寸可能不是真实的物理尺寸。因此,需要根据DPI进行相应的计算以获得实际分辨率。
int iH = Screen.PrimaryScreen.Bounds.Height;
int iW = Screen.PrimaryScreen.Bounds.Width;
5. 获取所有显示器的信息
如果需要获取所有显示器的信息,可以使用Screen.AllScreens
属性。
foreach (var screen in Screen.AllScreens)
{
Rectangle bounds = screen.Bounds;
// 使用bounds.Width和bounds.Height获取每个屏幕的分辨率
}
结论
在C#中,获取屏幕分辨率的接口主要依赖于Screen
类和System.Windows.Forms.SystemInformation
类。在多显示器或DPI缩放的情况下,可能需要额外的计算来获得准确的分辨率。SystemParameters
类在处理多屏幕设置时也非常重要。开发者应根据自己的需求选择合适的方法。
更专业一些
转笔记
专业
C#获取屏幕分辨率接口不在提醒