From 0b4f5f3d708ac06d3e5f29083047d502b2a99bb8 Mon Sep 17 00:00:00 2001 From: Meik Date: Thu, 5 Mar 2026 16:49:36 +0100 Subject: [PATCH] fix(layout): inset content clip inside rounded border --- Changelog.md | 2 +- MainWindow.xaml.cs | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Changelog.md b/Changelog.md index f1b053e..af2b818 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 und 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 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). - 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.cs b/MainWindow.xaml.cs index 0da1378..258b4e3 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -2184,12 +2184,24 @@ namespace C4IT_CustomerPanel const double surfaceRadius = 20d; const double contentRadius = 19d; + double contentInset = Math.Max(0d, MainWindowSurface.BorderThickness.Left); MainGrid.Clip = null; this.Clip = null; MainWindowSurface.Clip = new RectangleGeometry(new Rect(0d, 0d, surfaceWidth, surfaceHeight), surfaceRadius, surfaceRadius); - MainWindowContentRoot.Clip = new RectangleGeometry(new Rect(0d, 0d, contentWidth, contentHeight), contentRadius, contentRadius); + + double clippedContentWidth = Math.Max(0d, contentWidth - (contentInset * 2d)); + double clippedContentHeight = Math.Max(0d, contentHeight - (contentInset * 2d)); + double clippedContentRadius = Math.Max(0d, contentRadius - contentInset); + + if (clippedContentWidth > 0d && clippedContentHeight > 0d) + { + MainWindowContentRoot.Clip = new RectangleGeometry( + new Rect(contentInset, contentInset, clippedContentWidth, clippedContentHeight), + clippedContentRadius, + clippedContentRadius); + } if (btnSP != null && btnSP.ActualWidth > 0d && btnSP.ActualHeight > 0d) {