Browse Source

OffScreenMargin calculation with different DPI monitors calculation

pull/8365/head
Lubomir Tetak 4 years ago
parent
commit
939f5abfcf
  1. 5
      src/Windows/Avalonia.Win32/WindowImpl.cs

5
src/Windows/Avalonia.Win32/WindowImpl.cs

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.InteropServices;
using Avalonia.Controls;
using Avalonia.Automation.Peers;
@ -208,6 +209,8 @@ namespace Avalonia.Win32
}
}
public double PrimaryScreenRenderScaling => Screen.AllScreens.FirstOrDefault(screen => screen.Primary)?.PixelDensity ?? 1;
public double RenderScaling => _scaling;
public double DesktopScaling => RenderScaling;
@ -919,7 +922,7 @@ namespace Avalonia.Win32
if (WindowState == WindowState.Maximized)
{
_extendedMargins = new Thickness(0, (borderCaptionThickness.top - borderThickness.top) / RenderScaling, 0, 0);
_offScreenMargin = new Thickness(borderThickness.left / RenderScaling, borderThickness.top / RenderScaling, borderThickness.right / RenderScaling, borderThickness.bottom / RenderScaling);
_offScreenMargin = new Thickness(borderThickness.left / PrimaryScreenRenderScaling, borderThickness.top / PrimaryScreenRenderScaling, borderThickness.right / PrimaryScreenRenderScaling, borderThickness.bottom / PrimaryScreenRenderScaling);
}
else
{

Loading…
Cancel
Save