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

View File

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

View File

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