基本上,在使用NavigationView时,设置项目始终显示为齿轮图标和“设置”文本。可以改变这两件事吗?
答案 0 :(得分:2)
是的,您可以编辑控件的默认模板以修改设置区域的样式。您可以在此处找到以下内容:
<NavigationViewItem x:Name="SettingsNavPaneItem" Grid.Row="5">
<NavigationViewItem.Icon>
<SymbolIcon Symbol="Setting"/>
</NavigationViewItem.Icon>
</NavigationViewItem>
因此更改图标很容易。关于文本,您也可以在此处进行更改,但是我不确定控件是否不会覆盖它,并且由于我不在电脑上而无法验证。尝试使用SettingsItem
的{{1}}属性并强制转换为NavigationView
。
您可以通过以下方式自定义设置项文本,我不知道为什么以前没有考虑过-创建自定义NavigationViewItem
并在NavigationView
中手动更新文本:< / p>
OnApplyTemplate
展望未来,推荐的解决方案是使用WinUI library and its NavigationView
control。这样,您就可以在public class CustomizableNavigationView : NavigationView
{
protected override void OnApplyTemplate()
{
base.OnApplyTemplate();
var settingsItem = (NavigationViewItem)GetTemplateChild("SettingsNavPaneItem");
settingsItem.Content = "Custom text";
}
}
区域中添加多个NavigatoinItem
,并且它们是完全可配置的。除此之外,新控件不仅支持经典的汉堡包菜单显示,而且还可以在视图顶部水平显示,这是现在在大屏幕上推荐的导航模式。
答案 1 :(得分:0)
这是我更改文字的方式:
private void Navigation_Loaded(object sender, RoutedEventArgs e)
{
var settings = (Microsoft.UI.Xaml.Controls.NavigationViewItem) Navigation.SettingsItem;
settings.Content = "Other settings";
}
导航是我在XAML中的控件<NavigationView x:Name="Navigation" />
。
答案 2 :(得分:0)
我的答案基于@Andreas Fredriksson的答案,但也包含图标更改:
private void Navigation_Loaded(object sender, RoutedEventArgs e)
{
var settings = (NavigationViewItem)Navigation.SettingsItem;
settings.Content = "Help";
settings.Icon = new SymbolIcon((Symbol)0xE897);
}