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

如何修改WinUI 2.8中NavigationView的PaneToggleButton高度?

修改WinUI 2.8 NavigationView中PaneToggleButton的高度

WinUI里NavigationView的PaneToggleButton是控件模板内部的元素,直接改属性没用,得通过调整模板或者样式来搞定,给你两种可行的方法:

方法一:修改NavigationView的完整控件模板

你可以用Visual Studio或者Blend提取NavigationView的默认模板,找到里面名为PaneToggleButton的ToggleButton元素,直接改它的Height属性,记得把MinHeight设为0,不然可能受默认最小高度限制。

简化后的关键代码片段如下:

<Style TargetType="NavigationView">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="NavigationView">
                <!-- 保留模板里其他原有内容,只修改下面这部分 -->
                <ToggleButton x:Name="PaneToggleButton"
                              Height="60" <!-- 这里填你要的高度值 -->
                              MinHeight="0"
                              VerticalAlignment="Center">
                    <!-- 保留原ToggleButton内部的图标等内容 -->
                </ToggleButton>
                <!-- 模板其他内容不变 -->
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

提示:提取完整模板后,只改动PaneToggleButton的相关属性就行,别删其他必要内容。

方法二:给PaneToggleButton单独写样式

如果不想动整个NavigationView模板,你可以基于默认的PaneToggleButton样式创建自定义样式,覆盖高度设置:

<Page.Resources>
    <Style TargetType="ToggleButton" x:Key="CustomPaneToggleBtnStyle" BasedOn="{StaticResource PaneToggleButtonStyle}">
        <Setter Property="Height" Value="60"/>
        <Setter Property="MinHeight" Value="0"/>
    </Style>
</Page.Resources>

之后需要在提取的NavigationView模板里,把PaneToggleButton的Style属性改成这个自定义样式的引用。

额外提醒

改完高度后,最好检查一下按钮里的汉堡图标是否居中显示,要是位置不对,可以调整ToggleButton内部的布局容器(比如Grid)的对齐方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 17:05:18