如何在c# . net中获得DPI

本文关键字:DPI net | 更新日期: 2023-09-27 18:03:46

我正在尝试使用c#构建Windows窗体应用程序。

如何在。net中获得DPI ?

我以前读过,有DPIX和DPIY,可以在。net中使用,以获得当前的DPI。

正确吗?

谢谢。

如何在c# . net中获得DPI

使用Graphics类的实例。您可以在表单中使用以下命令(可以在表单的Load事件处理程序中):

float dx, dy;
Graphics g = this.CreateGraphics();
try
{
    dx = g.DpiX;
    dy = g.DpiY;
}
finally
{
    g.Dispose();
}

在WinForms应用程序中获取DPI的现代方法

在。net Framework 4.7或更新版本(例如。net 6.0)中,您可以使用控件。DeviceDpi属性获取当前显示控件的屏幕的DPI值。

int dpi = this.DeviceDpi;

控件返回的值。DeviceDpi属性取决于应用程序的DPI感知模式。在。net 5.0及更新版本中,您可以使用application在WinForms应用程序的入口点设置DPI感知。SetHighDpiMode方法。此MSDN页面列出了可能的模式。