是否可以更改 NavigationView 的设置项的图标和文本?

Xin*_*eng 6 uwp uwp-xaml

基本上,在使用 NavigationView 时,设置项始终显示为齿轮图标和“设置”文本。这两件事可以改变吗?

小智 5

这就是我更改文本的方式:

private void Navigation_Loaded(object sender, RoutedEventArgs e)
{
    var settings = (Microsoft.UI.Xaml.Controls.NavigationViewItem) Navigation.SettingsItem;
    settings.Content = "Other settings";
}
Run Code Online (Sandbox Code Playgroud)

导航是我在 XAML 中的控件<NavigationView x:Name="Navigation" />


Mar*_*und 3

是的,您可以编辑控件的默认模板来修改设置区域的样式。您可以在那里找到以下内容:

<NavigationViewItem x:Name="SettingsNavPaneItem" Grid.Row="5">
    <NavigationViewItem.Icon>
        <SymbolIcon Symbol="Setting"/>
    </NavigationViewItem.Icon>
</NavigationViewItem>
Run Code Online (Sandbox Code Playgroud)

所以改变图标很容易。关于文本,您也可以在此处更改它,但我不确定控件是否不会覆盖它,并且无法验证,因为我不在我的电脑旁。尝试使用SettingsItem的属性NavigationView并强制转换为NavigationViewItem

更新:更改文本

以下是如何自定义设置项文本,我不知道为什么我之前没有考虑过它 - 创建自定义NavigationView并手动更新文本OnApplyTemplate

public class CustomizableNavigationView : NavigationView
{
    protected override void OnApplyTemplate()
    {
        base.OnApplyTemplate();
        var settingsItem = (NavigationViewItem)GetTemplateChild("SettingsNavPaneItem");
        settingsItem.Content = "Custom text";
    }
}
Run Code Online (Sandbox Code Playgroud)

更新:WinUI

展望未来,推荐的解决方案将是使用WinUI 库及其NavigationView控件NavigatoinItem这允许您在该区域中添加多个PaneFooter,并且这些是完全可配置的。除此之外,新控件不仅支持经典的汉堡菜单显示,还可以在视图顶部水平显示,这是现在推荐的大屏幕导航模式。