Browse Source

Call SetProcessDPIAware() on Win32 backend so that the application is guarenteed to see the real dpi.

pull/1959/head
Dan Walmsley 8 years ago
parent
commit
29d02f0ad2
  1. 3
      src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs
  2. 2
      src/Windows/Avalonia.Win32/Win32Platform.cs

3
src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs

@ -976,6 +976,9 @@ namespace Avalonia.Win32.Interop
[DllImport("shcore.dll")]
public static extern void GetScaleFactorForMonitor(IntPtr hMon, out uint pScale);
[DllImport("user32.dll", SetLastError = true)]
public static extern bool SetProcessDPIAware();
[DllImport("user32.dll")]
public static extern IntPtr MonitorFromPoint(POINT pt, MONITOR dwFlags);

2
src/Windows/Avalonia.Win32/Win32Platform.cs

@ -77,6 +77,8 @@ namespace Avalonia.Win32
public static void Initialize(bool deferredRendering = true)
{
UnmanagedMethods.SetProcessDPIAware();
AvaloniaLocator.CurrentMutable
.Bind<IClipboard>().ToSingleton<ClipboardImpl>()
.Bind<IStandardCursorFactory>().ToConstant(CursorFactory.Instance)

Loading…
Cancel
Save