From 9887c5176829c88bf35820d5f962f45ff48027dc Mon Sep 17 00:00:00 2001 From: Meik Date: Thu, 5 Mar 2026 15:37:28 +0100 Subject: [PATCH] Harden rounded clip timing and pixel alignment for all corners --- Changelog.md | 1 + MainWindow.xaml | 1 + MainWindow.xaml.cs | 12 +++++++++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Changelog.md b/Changelog.md index f108def..aac87ac 100644 --- a/Changelog.md +++ b/Changelog.md @@ -8,6 +8,7 @@ - Außenrahmen der Haupt-GUI als durchgehender Outline-Rahmen umgesetzt, damit die Kontur auch über die Rundungen konsistent sichtbar bleibt. - Eckradius von WindowChrome und Außenrahmen auf das Inhalts-Panel abgestimmt, damit die Rundungen einheitlich wirken. - Hauptfläche mit explizitem Rounded-Clip (inset-korrigiert) versehen, damit Inhalte an allen vier Ecken innerhalb des Außenrahmens bleiben. +- Initialisierung des Rounded-Clips auf den finalen Layout-Zeitpunkt erweitert (Loaded/Render), damit die Rundungsbegrenzung stabil auf allen Ecken greift. ### Navigation und Interaktion - Navigation-Buttons neu ausgerichtet (horizontal/vertikal), Icons vergrößert und Zustände vereinheitlicht. diff --git a/MainWindow.xaml b/MainWindow.xaml index fb9e271..5c04a5a 100644 --- a/MainWindow.xaml +++ b/MainWindow.xaml @@ -358,6 +358,7 @@ CornerRadius="20" BorderThickness="0" Background="{DynamicResource backgroundColor}" + SnapsToDevicePixels="True" ClipToBounds="True"> > announcementIDCollection = new Dictionary>(); @@ -232,6 +233,13 @@ namespace C4IT_CustomerPanel private void Window_Loaded(object sender, RoutedEventArgs e) { ComputerInfoCtrl.FillMainInfoGrid(); + UpdateMainSurfaceClip(); + + if (!_mainSurfaceClipInitialized) + { + Dispatcher.BeginInvoke(new Action(UpdateMainSurfaceClip), DispatcherPriority.Loaded); + Dispatcher.BeginInvoke(new Action(UpdateMainSurfaceClip), DispatcherPriority.Render); + } NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(AddressChangedCallback); } @@ -2173,7 +2181,7 @@ namespace C4IT_CustomerPanel return; const double outerRadius = 20d; - const double clipInset = 1d; + const double clipInset = 0.5d; double clipWidth = Math.Max(0d, width - (clipInset * 2d)); double clipHeight = Math.Max(0d, height - (clipInset * 2d)); double clipRadius = Math.Max(0d, outerRadius - clipInset); @@ -2182,6 +2190,8 @@ namespace C4IT_CustomerPanel new Rect(clipInset, clipInset, clipWidth, clipHeight), clipRadius, clipRadius); + + _mainSurfaceClipInitialized = true; } }