如何在不使用C#创建图形的情况下获得dpi值?

时间:2019-07-09 13:48:23

标签: c# winforms

我不得不尝试在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;
}

0 个答案:

没有答案