Skip to content

Commit 3c6eae3

Browse files
committed
ux: try to use Mica material for main window's titlebar on Windows 11
Signed-off-by: leo <longshuang@msn.cn>
1 parent f446f5d commit 3c6eae3

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/Views/Launcher.axaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<Grid Grid.Row="0" ColumnDefinitions="Auto,32,32,*,Auto">
2323
<!-- Bottom border -->
2424
<Border Grid.Column="0" Grid.ColumnSpan="5"
25-
Background="{DynamicResource Brush.TitleBar}"
25+
x:Name="TitleBarBG"
2626
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border0}"
2727
DoubleTapped="MaximizeOrRestoreWindow"
2828
PointerPressed="BeginMoveWindow"/>
@@ -115,7 +115,7 @@
115115
</Grid>
116116

117117
<!-- Page -->
118-
<ContentControl Grid.Row="1" Content="{Binding ActivePage}">
118+
<ContentControl Grid.Row="1" Content="{Binding ActivePage}" Background="{DynamicResource Brush.Window}">
119119
<ContentControl.DataTemplates>
120120
<DataTemplate DataType="vm:LauncherPage">
121121
<v:LauncherPage/>

src/Views/Launcher.axaml.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using Avalonia.Controls;
55
using Avalonia.Input;
66
using Avalonia.Interactivity;
7+
using Avalonia.Markup.Xaml.MarkupExtensions;
78
using Avalonia.Media;
89
using Avalonia.Platform;
910
using Avalonia.VisualTree;
@@ -61,6 +62,17 @@ public Launcher()
6162
InitializeComponent();
6263
PositionChanged += OnPositionChanged;
6364

65+
if (OperatingSystem.IsWindows() && OperatingSystem.IsWindowsVersionAtLeast(10, 0, 22000))
66+
{
67+
Background = Brushes.Transparent;
68+
TransparencyLevelHint = [WindowTransparencyLevel.Mica];
69+
TitleBarBG.Background = Brushes.Transparent;
70+
}
71+
else
72+
{
73+
TitleBarBG.Bind(BackgroundProperty, new DynamicResourceExtension("Brush.TitleBar"));
74+
}
75+
6476
var layout = ViewModels.Preferences.Instance.Layout;
6577
Width = layout.LauncherWidth;
6678
Height = layout.LauncherHeight;

0 commit comments

Comments
 (0)