NavigationView-使用C#添加菜单项会导致将NavigationViewItem嵌套在生成的NavigationViewItem中 [英] NavigationView - adding menu items with C# results in NavigationViewItem being nested in a generated NavigationViewItem

查看:0
本文介绍了NavigationView-使用C#添加菜单项会导致将NavigationViewItem嵌套在生成的NavigationViewItem中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试通过后台代码将菜单项添加到NavigationView控件。

XAML:

<ct:NavigationView x:Name="NavMain" ItemInvoked="NavMain_ItemInvoked">
    <ct:NavigationView.MenuItems>
        <ct:NavigationViewItem Content="Home"/>
    </ct:NavigationView.MenuItems>
</ct:NavigationView>

C#:

private void RenderMenu()
{
    NavMain.MenuItems.Add(new NavigationViewItemSeparator());

    foreach (TarotSuit suit in deck.Suits)
    {
        // make a nav menu item for the suit
        NavigationViewItem newMenu = new NavigationViewItem();
        newMenu.Content = suit.Suit;
        newMenu.Icon = new SymbolIcon(Symbol.OutlineStar);

        NavMain.MenuItems.Add("menu");
    }
}

菜单呈现,但看起来添加的NavigationViewItem被设置为自动生成的NavigationViewItem的内容,因此XAML树和呈现的菜单如下所示(由于此,左侧有太多填充):

Microsoft文档中的示例代码使用的语法与我使用的语法相同。

如果我使用字符串,菜单项将正确呈现,但是我不能轻松地设置菜单项的任何属性。我知道我可以循环返回这些项以配置每个项,但它似乎应该正确呈现。

是我做错了什么,还是控件中有错误?

XAML

当您从代码后台添加新项时,它使用新项的默认NavigationViewItem样式,并且它应该与您在推荐答案中使用的第一个NavigationViewItem样式相同。

如果要更改NavigationViewItem样式,可以在页面中添加自定义NavigationViewItem样式资源,以便获得所需的外观。

-更新-

好的,您使用了Microsoft.UI.Xaml.Controls.NavigationView,所以如果要在NavigationView中使用相同样式的NavigationViewItem样式,您还需要在代码中添加Microsoft.UI.Xaml.Controls.NavigationViewItem

在后台代码中,添加命名空间:

using MUXC = Microsoft.UI.Xaml.Controls;

然后,您应该创建新的Microsoft.UI.Xaml.Controls.NavigationViewItem对象,然后将它们添加到NavigationView

private void RenderMenu()
{
    NavMain.MenuItems.Add(new NavigationViewItemSeparator());

    foreach (TarotSuit suit in deck.Suits)
    {
        // make a nav menu item for the suit
        MUXC.NavigationViewItem newMenu = new MUXC.NavigationViewItem();
        newMenu.Content = suit.Suit;
        newMenu.Icon = new SymbolIcon(Symbol.OutlineStar);

        NavMain.MenuItems.Add(newMenu);
    }
}

这篇关于NavigationView-使用C#添加菜单项会导致将NavigationViewItem嵌套在生成的NavigationViewItem中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆