WPF中如何实现自定义窗口标题栏?

来源:这里教程网 时间:2026-02-21 17:26:09 作者:

在WPF里,实现自定义窗口标题栏,核心思路就是“自己动手,丰衣足食”。我们通常会先隐藏掉系统自带的标题栏,然后用XAML元素,比如

Grid
或者
Border
,来构建自己的标题区域,并手动实现拖动、最小化、最大化和关闭这些基本功能。这听起来有点像“搭积木”,但好处是完全的视觉自由,能让你的应用界面风格更统一。

要实现自定义标题栏,我们首先得对

Window
的属性动刀。
WindowStyle="None"
是第一步,这会把整个系统默认的边框和标题栏都干掉。如果你还想窗口有圆角或者不规则形状,那么
AllowsTransparency="True"
也得加上,同时
Background
要设为
Transparent

接下来就是XAML的活儿了。在你的

Window
的根
Grid
或者其他布局容器里,放一个
Grid
或者
DockPanel
作为你的自定义标题栏。通常,我会用一个
Grid
,里面放一个
TextBlock
显示标题,旁边再放几个
Button
来做最小化、最大化和关闭。

<Window x:Class="CustomTitleBarApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="我的自定义窗口" Height="450" Width="800"
        WindowStyle="None" AllowsTransparency="True" Background="Transparent"
        ResizeMode="CanResize"> <!-- 确保窗口可以调整大小 -->
    <Border Background="#282C34" CornerRadius="8"> <!-- 整个窗口的背景和圆角 -->
        <Grid>
            <!-- 自定义标题栏区域 -->
            <Grid Height="32" VerticalAlignment="Top" Background="#3E4452"

相关推荐