/// <summary> /// Tries to set thread dpi awareness context /// </summary> /// <returns> returns old thread dpi awareness context if API is available in this version of OS. otherwise, return IntPtr.Zero.</returns> public static DpiAwarenessContext TrySetThreadDpiAwarenessContext(DpiAwarenessContext dpiContext) { if (OsVersion.IsWindows10_1607OrGreater) { if (dpiContext == DpiAwarenessContext.DPI_AWARENESS_CONTEXT_UNSPECIFIED) { throw new ArgumentException(nameof(dpiContext), dpiContext.ToString()); } return(SetThreadDpiAwarenessContext(dpiContext)); } // legacy OS that does not have this API available. return(DpiAwarenessContext.DPI_AWARENESS_CONTEXT_UNSPECIFIED); }
/// <summary> /// Tries to set thread dpi awareness context /// </summary> /// <returns> returns old thread dpi awareness context if API is available in this version of OS. otherwise, return IntPtr.Zero.</returns> public static DpiAwarenessContext TrySetThreadDpiAwarenessContext(DpiAwarenessContext dpiContext) { if (ApiHelper.IsApiAvailable(ExternDll.User32, nameof(CommonUnsafeNativeMethods.SetThreadDpiAwarenessContext))) { if (dpiContext == DpiAwarenessContext.DPI_AWARENESS_CONTEXT_UNSPECIFIED) { throw new ArgumentException(nameof(dpiContext), dpiContext.ToString()); } return(SetThreadDpiAwarenessContext(dpiContext)); } else { // legacy OS that does not have this API available. return(DpiAwarenessContext.DPI_AWARENESS_CONTEXT_UNSPECIFIED); } }