我不得不尝试在c#中获取图形的dpi值。我发现了一种使用本机方法的方法,并且效果很好。但是我想要更多的选择来获得dpi值。
[DllImport("gdi32.dll")]
static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
[DllImport("user32.dll")]
static extern IntPtr GetDC(IntPtr hWnd);
public static float GetCurrentDpi()
{
float dpi = 0;
IntPtr handle = NativeMethods.GetDC(IntPtr.Zero);
if (handle != IntPtr.Zero)
{
dpi = NativeMethods.GetDeviceCaps(handle, 88);
NativeMethods.ReleaseDC(IntPtr.Zero, handle);
}
return dpi;
}