fix(layout): inset content clip inside rounded border
This commit is contained in:
@@ -10,7 +10,7 @@
|
|||||||
- Hauptlayout von festen `Window.ActualWidth`-Bindings entkoppelt, damit Header/Content nicht über die gerundete Innenfläche hinausragen.
|
- 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.
|
- 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.
|
- 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.
|
- 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
|
### Navigation und Interaktion
|
||||||
|
|||||||
@@ -2184,12 +2184,24 @@ namespace C4IT_CustomerPanel
|
|||||||
|
|
||||||
const double surfaceRadius = 20d;
|
const double surfaceRadius = 20d;
|
||||||
const double contentRadius = 19d;
|
const double contentRadius = 19d;
|
||||||
|
double contentInset = Math.Max(0d, MainWindowSurface.BorderThickness.Left);
|
||||||
|
|
||||||
MainGrid.Clip = null;
|
MainGrid.Clip = null;
|
||||||
this.Clip = null;
|
this.Clip = null;
|
||||||
|
|
||||||
MainWindowSurface.Clip = new RectangleGeometry(new Rect(0d, 0d, surfaceWidth, surfaceHeight), surfaceRadius, surfaceRadius);
|
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)
|
if (btnSP != null && btnSP.ActualWidth > 0d && btnSP.ActualHeight > 0d)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user