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

请教XAML中WindowChrome.WindowChrome语法:它是Window的属性吗?

关于WPF中WindowChrome.WindowChrome的疑问解答

首先明确:WindowChrome.WindowChrome不是Window的原生属性,它是WindowChrome类提供的附加属性(Attached Property),专门用来给Window扩展自定义窗口边框、拖动、缩放等交互行为的。

你熟悉的Grid.Background是Grid自身的依赖属性,而附加属性的特点是可以被其他控件(这里是Window)借用,用来给原本没有该属性的控件添加额外功能。

正确的使用方式

要让这个附加属性生效,你需要在<WindowChrome.WindowChrome>标签内部实例化一个WindowChrome对象,并设置相关属性(比如控制边框厚度、标题栏高度等),完整示例如下:

<Window x:Class="WpfApp1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WpfApp1"
    mc:Ignorable="d"
    Background="#dfe2e8"
    WindowStyle="None"
    Title="MainWindow" Height="450" Width="800">
    <!-- 附加WindowChrome实例到当前Window -->
    <WindowChrome.WindowChrome>
        <WindowChrome 
            GlassFrameThickness="1"       <!-- 玻璃边框厚度 -->
            ResizeBorderThickness="5"     <!-- 可缩放边框的厚度 -->
            CaptionHeight="30"/>          <!-- 标题栏高度(用于拖动窗口) -->
    </WindowChrome.WindowChrome>

    <!-- 窗口内容区域 -->
    <Grid>
        <!-- 这里添加你的控件 -->
    </Grid>
</Window>

因为你设置了WindowStyle="None",原生窗口的边框和标题栏会消失,通过WindowChrome可以重新赋予窗口拖动、边缘缩放的能力,同时还能自定义外观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 23:39:52