From d411f23fc4c47167182a91d2e7975a2af84ae69a Mon Sep 17 00:00:00 2001 From: Meik Date: Thu, 5 Mar 2026 16:54:03 +0100 Subject: [PATCH] fix(layout): enforce 1px inner inset for rounded frame --- Changelog.md | 2 +- MainWindow.xaml | 3 ++- MainWindow.xaml.cs | 16 ++-------------- 3 files changed, 5 insertions(+), 16 deletions(-) diff --git a/Changelog.md b/Changelog.md index af2b818..36f6cc5 100644 --- a/Changelog.md +++ b/Changelog.md @@ -10,7 +10,7 @@ - Hauptlayout von festen `Window.ActualWidth`-Bindings entkoppelt, damit Header/Content nicht über die gerundete Innenfläche hinausragen. - Feste Hauptlayout-Höhen (Navigation/Content) auf die verfügbare Innenhöhe abgestimmt und Clipping im Dock-Bereich aktiviert, damit keine Inhalte in die Rundungsbereiche überlaufen. - Initialisierung des Rounded-Clips auf den finalen Layout-Zeitpunkt erweitert (Loaded/Render), damit die Rundungsbegrenzung stabil greift. -- MainWindow-Ecküberstände beseitigt: Navigation-Rail unten links an den Fensterradius angepasst, Content-Bereich im `DockPanel` als Fill-Element geführt, zusätzlicher Surface-Clip auf Radius `20` gesetzt, den inneren Content-Clip um die Border-Stärke nach innen versetzt und den Body-Host per Geometrie mit gerundeten unteren Ecken begrenzt (WPF-Typen für Geometriepunkte/-größen explizit qualifiziert, um Mehrdeutigkeiten mit `System.Drawing` zu vermeiden). +- MainWindow-Ecküberstände beseitigt: Navigation-Rail unten links an den Fensterradius angepasst, Content-Bereich im `DockPanel` als Fill-Element geführt, zusätzlicher Surface-Clip auf Radius `20` gesetzt, den gesamten `MainWindowContentRoot` als konstanten `1px`-Inset innerhalb des Rahmens geführt und den Body-Host per Geometrie mit zum Innenradius passenden gerundeten unteren Ecken begrenzt (WPF-Typen für Geometriepunkte/-größen explizit qualifiziert, um Mehrdeutigkeiten mit `System.Drawing` zu vermeiden). - Sichtbarkeit des Main-Contents wiederhergestellt: Navigations-/Content-Host auf feste Breitenaufteilung (`75 + 425`) umgestellt, damit das Inhaltspanel nicht mehr durch einen Zero-Width-Viewport abgeschnitten wird. ### Navigation und Interaktion diff --git a/MainWindow.xaml b/MainWindow.xaml index a468e0f..9fce76a 100644 --- a/MainWindow.xaml +++ b/MainWindow.xaml @@ -361,7 +361,8 @@ Background="{DynamicResource backgroundColor}" SnapsToDevicePixels="True" ClipToBounds="True"> - + 0d && clippedContentHeight > 0d) - { - MainWindowContentRoot.Clip = new RectangleGeometry( - new Rect(contentInset, contentInset, clippedContentWidth, clippedContentHeight), - clippedContentRadius, - clippedContentRadius); - } + MainWindowContentRoot.Clip = new RectangleGeometry(new Rect(0d, 0d, contentWidth, contentHeight), contentRadius, contentRadius); if (btnSP != null && btnSP.ActualWidth > 0d && btnSP.ActualHeight > 0d) { - btnSP.Clip = CreateBottomRoundedRectGeometry(btnSP.ActualWidth, btnSP.ActualHeight, surfaceRadius); + btnSP.Clip = CreateBottomRoundedRectGeometry(btnSP.ActualWidth, btnSP.ActualHeight, contentRadius); } _mainSurfaceClipInitialized = true;