/* * // Dpi awareness context values. Matching windows values. * public static readonly DPI_AWARENESS_CONTEXT DPI_AWARENESS_CONTEXT_UNAWARE = (-1); * public static readonly DPI_AWARENESS_CONTEXT DPI_AWARENESS_CONTEXT_SYSTEM_AWARE = (-2); * public static readonly DPI_AWARENESS_CONTEXT DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE = (-3); * public static readonly DPI_AWARENESS_CONTEXT DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 = (-4); * public static readonly DPI_AWARENESS_CONTEXT DPI_AWARENESS_CONTEXT_UNSPECIFIED = (0);*/ internal static DpiAwarenessContext GetDpiAwarenessContextForWindow(IntPtr hWnd) { DpiAwarenessContext dpiAwarenessContext = DpiAwarenessContext.DPI_AWARENESS_CONTEXT_UNSPECIFIED; if (OsVersion.IsWindows10_1607OrGreater) { // Works only >= Windows 10/1607 IntPtr awarenessContext = User32.GetWindowDpiAwarenessContext(hWnd); User32.DPI_AWARENESS awareness = User32.GetAwarenessFromDpiAwarenessContext(awarenessContext); dpiAwarenessContext = ConvertToDpiAwarenessContext(awareness); } return(dpiAwarenessContext); }
private static DpiAwarenessContext ConvertToDpiAwarenessContext(User32.DPI_AWARENESS dpiAwareness) { switch (dpiAwareness) { case User32.DPI_AWARENESS.UNAWARE: return(DpiAwarenessContext.DPI_AWARENESS_CONTEXT_UNAWARE); case User32.DPI_AWARENESS.SYSTEM_AWARE: return(DpiAwarenessContext.DPI_AWARENESS_CONTEXT_SYSTEM_AWARE); case User32.DPI_AWARENESS.PER_MONITOR_AWARE: return(DpiAwarenessContext.DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); default: return(DpiAwarenessContext.DPI_AWARENESS_CONTEXT_SYSTEM_AWARE); } }