From 939f5abfcf5d4ce3b566612329e147c7cad1b130 Mon Sep 17 00:00:00 2001 From: Lubomir Tetak Date: Mon, 20 Jun 2022 10:52:13 +0200 Subject: [PATCH 1/2] OffScreenMargin calculation with different DPI monitors calculation --- src/Windows/Avalonia.Win32/WindowImpl.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index 8d836ef452..7d7a146920 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/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 { From 011232d67bc48d482ff12291b288fcc2a34bfec9 Mon Sep 17 00:00:00 2001 From: Lubomir Tetak Date: Fri, 24 Jun 2022 13:39:55 +0200 Subject: [PATCH 2/2] make PrimaryScreenRenderScaling private --- src/Windows/Avalonia.Win32/WindowImpl.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index 7d7a146920..01e0fb1afc 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -209,7 +209,7 @@ namespace Avalonia.Win32 } } - public double PrimaryScreenRenderScaling => Screen.AllScreens.FirstOrDefault(screen => screen.Primary)?.PixelDensity ?? 1; + private double PrimaryScreenRenderScaling => Screen.AllScreens.FirstOrDefault(screen => screen.Primary)?.PixelDensity ?? 1; public double RenderScaling => _scaling;