如何修改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
相关产品推荐
相关产品推荐

