UWP 或 XAML 导航视图突出显示 [关闭]

Posted

技术标签:

【中文标题】UWP 或 XAML 导航视图突出显示 [关闭]【英文标题】:UWP or XAML Navigation view highlight [closed] 【发布时间】:2021-10-30 07:36:57 【问题描述】:

我正在研究通用窗口平台。 我对导航视图有疑问。

在我的页面中,导航视图有 4 个项目。 而且,当我单击按钮时,我想突出显示导航视图项。 (例如:当我单击按钮时,我想突出显示第二个导航视图项) (通过增加粗细或闪烁导航视图项边框颜色等方法)。

但是,我对此一无所知。 (如何处理和处理什么..) 如果您知道什么或有什么可参考的,请告诉我,我将不胜感激。

对不起我糟糕的英语。

【问题讨论】:

【参考方案1】:

通常,您可以在NavigationView.ItemInvoked Event 中执行此操作。假设这是一个非常简单的场景。当您点击NavigationView 中的NavigationViewItem 时,NavigationView.ItemInvoked Event 将被触发,您可以通过NavigationView.SelectedItem Property 获取点击的项目。然后您可以更改NavigationViewItem

我对此做了一个非常简单的示例。您可以根据自己的情况调整这些代码。

代码隐藏:

 private void nvSample_ItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args)
    
        //change selected item
        NavigationViewItem selectedItem = nvSample.SelectedItem as NavigationViewItem;
        selectedItem.FontSize = 34;
        // get items
        var items = nvSample.MenuItems;
        //change other items back to normal
        foreach (NavigationViewItem item in items) 
        
            if (!item.Tag.ToString().Equals(selectedItem.Tag.ToString())) 
            
                item.FontSize = 20;
            
         


        ContentFrame.Navigate(typeof(HomePage));
    

Xaml:

 <NavigationView x:Name="nvSample" ItemInvoked="nvSample_ItemInvoked" >
        <NavigationView.MenuItems>
            <NavigationViewItem Icon="Play" Content="Menu Item1" Tag="SamplePage1" FontSize="20" />
            <NavigationViewItem Icon="Save" Content="Menu Item2" Tag="SamplePage2" FontSize="20" />
            <NavigationViewItem Icon="Refresh" Content="Menu Item3" Tag="SamplePage3" FontSize="20"/>
            <NavigationViewItem Icon="Download" Content="Menu Item4" Tag="SamplePage4" FontSize="20" />
        </NavigationView.MenuItems>
        <ScrollViewer>
            <Frame x:Name="ContentFrame" Padding="12,0,12,24" IsTabStop="True"/>
        </ScrollViewer>
    </NavigationView>

【讨论】:

嗨。你的回答很完美。但我的问题是缺乏的。在我的程序中,导航视图和按钮不在同一个网格中。按钮仅表示按钮元素。因此,当我单击该按钮时,我想将第二个 Navigationviewitem 的边框更改为闪烁。 (例如,该项目的边框变为红色闪烁......)。抱歉打扰你。但是,如果您对此有所了解或有想法,您能告诉我一些事情吗?非常感谢您的回答。 另外,我尝试了您评论的代码。但是这一行“foreach(NavigationViewItem item in items)”抛出了 InvalidCastException。是我的错吗? @hong 你的意思是你想改变NavigationViewItem当一个按钮在frame页面里面?您能否更新您的问题,详细说明您的预期行为? 哦,我参考你的代码解决了这个问题。真的谢谢你。 @hong 如果您已经解决了您的问题,请考虑在此处发布您的解决方案并mark 它被接受。

以上是关于UWP 或 XAML 导航视图突出显示 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

UWP-标题栏”后退“按钮

微软UWP应用,导航栏设计。

如何在`GridView`中启用显示突出显示

如何确保 UWP 应用在启动时始终全屏显示?

从目标视图返回时,SwiftUI NavigationLink 显示为突出显示

UWP - Flyout中的WinRT xaml工具包TreeView,在弹出窗口关闭后更改选择