feat: enable UrsaWindow and Dialog border customization.

This commit is contained in:
rabbitism
2024-09-11 22:28:56 +08:00
parent 7271fb290a
commit bcaa3f7e23
3 changed files with 31 additions and 14 deletions

View File

@@ -473,7 +473,11 @@
<ControlTemplate TargetType="u:DialogWindow">
<Panel>
<Border Name="PART_TransparencyFallback" IsHitTestVisible="False" />
<Border Background="{TemplateBinding Background}" IsHitTestVisible="False" />
<Border Background="{TemplateBinding Background}"
BackgroundSizing="InnerBorderEdge"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
IsHitTestVisible="False" />
<Panel Margin="{TemplateBinding WindowDecorationMargin}" Background="Transparent" />
<VisualLayerManager>
<Grid RowDefinitions="Auto, *">
@@ -536,7 +540,11 @@
<ControlTemplate TargetType="u:DefaultDialogWindow">
<Panel>
<Border Name="PART_TransparencyFallback" IsHitTestVisible="False" />
<Border Background="{TemplateBinding Background}" IsHitTestVisible="False" />
<Border Background="{TemplateBinding Background}"
BackgroundSizing="InnerBorderEdge"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
IsHitTestVisible="False" />
<Panel Margin="{TemplateBinding WindowDecorationMargin}" Background="Transparent" />
<VisualLayerManager>
<Grid RowDefinitions="Auto, *, Auto">

View File

@@ -31,7 +31,11 @@
<ControlTemplate TargetType="u:MessageBoxWindow">
<Panel>
<Border Name="PART_TransparencyFallback" IsHitTestVisible="False" />
<Border Background="{TemplateBinding Background}" IsHitTestVisible="False" />
<Border Background="{TemplateBinding Background}"
BackgroundSizing="InnerBorderEdge"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
IsHitTestVisible="False" />
<Panel Margin="{TemplateBinding WindowDecorationMargin}" Background="Transparent" />
<VisualLayerManager>
<Grid RowDefinitions="Auto, *, Auto">

View File

@@ -55,14 +55,19 @@
<ControlTemplate TargetType="u:UrsaWindow">
<Panel>
<Border Name="PART_TransparencyFallback" IsHitTestVisible="False" />
<Border Background="{TemplateBinding Background}" IsHitTestVisible="False" />
<Border
Background="{TemplateBinding Background}"
BackgroundSizing="InnerBorderEdge"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
IsHitTestVisible="False" />
<Panel Margin="{TemplateBinding WindowDecorationMargin}" Background="Transparent" />
<VisualLayerManager Padding="{TemplateBinding OffScreenMargin, Mode=OneWay}">
<VisualLayerManager.ChromeOverlayLayer>
<u:TitleBar
IsTitleVisible="{Binding $parent[u:UrsaWindow].IsTitleBarVisible}"
Content="{Binding $parent[u:UrsaWindow].TitleBarContent}"
Margin="{Binding $parent[u:UrsaWindow].TitleBarMargin}"
Content="{Binding $parent[u:UrsaWindow].TitleBarContent}"
IsTitleVisible="{Binding $parent[u:UrsaWindow].IsTitleBarVisible}"
LeftContent="{Binding $parent[u:UrsaWindow].LeftContent}"
RightContent="{Binding $parent[u:UrsaWindow].RightContent}" />
<VisualLayerManager>
@@ -96,23 +101,23 @@
Name="PART_Background"
Background="{TemplateBinding Background}"
IsHitTestVisible="True" />
<Grid ColumnDefinitions="Auto, *, Auto, Auto" HorizontalAlignment="Stretch">
<Grid HorizontalAlignment="Stretch" ColumnDefinitions="Auto, *, Auto, Auto">
<ContentPresenter
Grid.Column="0"
IsVisible="{TemplateBinding IsTitleVisible}"
Content="{TemplateBinding LeftContent}" />
Content="{TemplateBinding LeftContent}"
IsVisible="{TemplateBinding IsTitleVisible}" />
<ContentPresenter
Grid.Column="1"
IsVisible="{TemplateBinding IsTitleVisible}"
Content="{TemplateBinding Content}" />
Content="{TemplateBinding Content}"
IsVisible="{TemplateBinding IsTitleVisible}" />
<ContentPresenter
Grid.Column="2"
IsVisible="{TemplateBinding IsTitleVisible}"
Content="{TemplateBinding RightContent}" />
Content="{TemplateBinding RightContent}"
IsVisible="{TemplateBinding IsTitleVisible}" />
<u:CaptionButtons
x:Name="PART_CaptionButtons"
Grid.Column="3"
Margin="8 0"
Margin="8,0"
HorizontalAlignment="Right"
VerticalAlignment="Top"
DockPanel.Dock="Right"