目前编写的函数将返回系统的当前分辨率但有困难。我是桌面分辨率(它是一个图像下载器,所以我将以一定的分辨率搜索图像)。
目前我尝试了两种不同的方式,我的第一次尝试如下:
private Size GetMonitorResolution()
{
Size temp = Screen.PrimaryScreen.Bounds;
return temp;
}
此功能仅在DPI未缩放时才有效,例如我有一台运行速度为1920x1080的15“笔记本电脑,但是我将文本缩放到125%,因为如果不这样做,它会太小而无法读取。函数在这台笔记本电脑上输出1536x864的分辨率。我也尝试过像SystemInformation.PrimaryMonitorSize这样的类似调用,但这也会返回1536x864,这是不正确的。
我的第二次尝试是通过谷歌搜索问题找到的材料的混合物,但它仍然返回1536x864。该功能看起来像这样:
private Size GetMonitorResolution()
{
using (Graphics graphics = Graphics.FromHwnd(IntPtr.Zero))
{
return new Size((Screen.PrimaryScreen.Bounds.Width * (int)graphics.DpiX) / 96
, (Screen.PrimaryScreen.Bounds.Height * (int)graphics.DpiY) / 96);
}
}