You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置窗口标题属性?包含标题FontFamily修改、标题栏移除相关问题

窗口标题FontFamily设置不生效的解决方案

不生效原因

WPF默认窗口的标题栏由操作系统直接渲染,不属于WPF自身的视觉控件树,因此直接给Window节点设置FontFamily属性仅对窗口内部的内容区域生效,无法修改系统标题栏的文字样式。

解决步骤

你需要通过自定义标题栏的方式修改标题字体,操作如下:

  1. 先移除系统自带的标题栏,给Window节点添加以下属性:
<Window ...
    WindowStyle="None"
    <!-- 如需窗口背景透明/圆角效果可添加下面属性,不需要可省略 -->
    AllowsTransparency="True"
    <!-- 按需设置窗口是否可调整大小 -->
    ResizeMode="CanResize"
>
  1. 在窗口布局中自定义标题栏区域,直接指定你需要的字体即可,示例代码:
<Grid>
    <!-- 自定义标题栏区域 -->
    <Grid Height="32" VerticalAlignment="Top" Background="LightGray" MouseLeftButtonDown="TitleBar_MouseLeftButtonDown">
        <TextBlock 
            Text="窗口标题"
            FontFamily="EngraversGothic BT"
            VerticalAlignment="Center"
            Margin="12,0,0,0"
        />
        <!-- 可自行添加最小化、最大化、关闭等控制按钮 -->
    </Grid>
    <!-- 窗口其他内容区域,顶部预留32px避免被标题栏遮挡 -->
    <Grid Margin="0,32,0,0">
        <!-- 此处放置你的页面内容 -->
    </Grid>
</Grid>
  1. 后台添加拖动窗口的逻辑,匹配自定义标题栏的鼠标事件:
private void TitleBar_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    DragMove();
}
完全移除标题栏的实现方法

如果不需要自定义标题栏,仅需完全移除系统标题栏,只需要给Window节点设置WindowStyle="None"属性即可,该属性会直接移除系统提供的标题栏、控制按钮和默认边框。
如需保留窗口调整大小的能力,可搭配ResizeMode属性使用,可选值包括:

  • NoResize:窗口固定尺寸,不可调整
  • CanResize:可自由调整窗口尺寸
  • CanResizeWithGrip:窗口右下角显示尺寸调整抓柄

内容的提问来源于stack exchange,提问作者IAbstract

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:06:04