告别传统WinForm:用WinUI 3打造毛玻璃效果的现代桌面应用
引言
还记得那些年我们用过的WinForm应用吗?灰色的边框、方正的按钮、一成不变的外观。在这个看脸的时代,用户对桌面应用的视觉要求越来越高。而WinUI 3的出现,让.NET开发者终于可以轻松打造出具有现代感的桌面应用。
本文将带你从零开始,用WinUI 3打造一个具有毛玻璃效果、自定义标题栏的现代化应用。最终效果将媲美Windows 11原生应用。
一、为什么选择WinUI 3?
|
特性 |
WinForm |
WPF |
WinUI 3 |
|
Fluent Design |
❌ |
需第三方 |
✅ 原生 |
|
云母/亚克力材质 |
❌ |
❌ |
✅ 原生 |
|
圆角控件 |
需自定义 |
需自定义 |
✅ 原生 |
|
现代导航 |
❌ |
需第三方 |
NavigationView |
|
性能 |
一般 |
一般 |
优秀 |
二、环境准备
在开始之前,请确保你已经安装了:
- Visual Studio 2022(17.0+)
- .NET 6 SDK 或更高版本
- WinUI 3 项目模板(可通过VS Installer安装)
三、创建项目并启用云母背景
3.1 创建新项目
选择“空白应用,打包的 (WinUI 3 Blank App)”模板。

3.2 启用云母材质
云母(Mica)是Windows 11引入的半透明材质,能根据桌面壁纸动态取色,营造通透感,在Window对象的xaml文件开启即可;
<Window.SystemBackdrop>
<MicaBackdrop />
</Window.SystemBackdrop>

四、自定义标题栏
专业应用通常会隐藏默认标题栏,让内容区延伸到顶部。
4.1 修改MainWindow.xaml中自定义个标题栏
<Grid x:Name="AppTitleBar"
Height="32"
VerticalAlignment="Top"
Background="Orange">
<TextBlock x:Name="TitleTextBlock"
Text="My WinUI3"
Margin="12,0,0,0"
VerticalAlignment="Center"
Style="{StaticResource CaptionTextBlockStyle}"/>
</Grid>
4.2 设置标题栏拖拽区域
在 MainWindow.xaml.cs 初始化时设置扩展区域到标题栏;
public MainWindow()
{
InitializeComponent();
this.ExtendsContentIntoTitleBar = true;
SetTitleBar(AppTitleBar);
}
这样就得到了一个自定义标题栏;

五、核心布局控件实战
WinUI 3提供了强大的布局控件,掌握它们是构建现代UI的基础。
5.1 Grid——网格布局
Grid是最常用的布局控件,适合构建复杂界面,如下定义了上下两行布局,第一行做自定义标题栏,第二行做导航栏;
<Grid>
<Grid.RowDefinitions>
<!--标题栏内容-->
<RowDefinition Height="Auto"/>
<!--导航栏-->
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid x:Name="AppTitleBar" Grid.Row="0"/>
<NavigationView x:Name="AppNavPanel" Grid.Row="1" />
</Grid>

5.2 StackPanel——简单堆叠
StackPanel用于简单的内容堆叠,可以水平或垂直排列,如下定义了一排水平排列按钮;
<StackPanel Grid.Row="1" Orientation="Horizontal" Spacing="8" HorizontalAlignment="Center">
<Button Content="New" />
<Button Content="Edit" />
<Button Content="Delete" />
</StackPanel>

5.3综合-卡片式列表
结合Grid和StackPanel,我们可以创建类似Windows 11设置的卡片式界面,如果你想进一步添加滚动条,外层包裹ScrollViewer即可,当ScrollViewer的内容区域超出窗口范围时,会自动添加滚动条,如下所示:

六、总结
WinUI 3为.NET桌面开发者带来了前所未有的现代UI体验。通过本文的学习,你应该已经掌握了:
✅ 启用云母/亚克力毛玻璃效果
✅ 自定义标题栏,打造专业外观
✅ 使用Grid和StackPanel构建灵活布局
✅ 创建卡片式界面
✅ 响应式窗口适配
相比传统WinForm,WinUI 3既有简单容易上手的一面,也有高级复杂的功能,高级功能虽然复杂,但带来的视觉和用户体验提升是巨大的。如果你想在2026年打造一款让人眼前一亮的桌面应用,WinUI 3是一个不错的选择。