C# 导航视图未自动关闭
经过一段时间的往返和一些不错的谷歌搜索,我能够让导航视图运行得很好(在这一点上我有点为自己感到骄傲)。 我有两个问题(可能已连接)。主要问题是,每当我选择一个菜单项时,它会正确导航,但在选择该项时,它无法关闭/最小化左侧的菜单。(参见下面的屏幕截图) 第二个问题(我怀疑与此有关)在打开应用程序时自动选择主页的代码行不断抛出异常,因此我删除了该行。 行是Mainpage.xaml.cs上的第40行,其内容是:C# 导航视图未自动关闭,c#,uwp,uwp-xaml,C#,Uwp,Uwp Xaml,经过一段时间的往返和一些不错的谷歌搜索,我能够让导航视图运行得很好(在这一点上我有点为自己感到骄傲)。 我有两个问题(可能已连接)。主要问题是,每当我选择一个菜单项时,它会正确导航,但在选择该项时,它无法关闭/最小化左侧的菜单。(参见下面的屏幕截图) 第二个问题(我怀疑与此有关)在打开应用程序时自动选择主页的代码行不断抛出异常,因此我删除了该行。 行是Mainpage.xaml.cs上的第40行,其内容是: if (item is NavigationViewItem && it
if (item is NavigationViewItem && item.Tag.ToString() == "Home_Page")
它看起来像什么。
我试图设置一个变量:
NavView.IsPanelOpen = false;
但是我找不到正确的位置来放置它
这是MainPage.xaml
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:RussMenu"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-
compatibility/2006"
xmlns:Custom="using:Microsoft.Toolkit.Uwp.UI.Controls"
x:Class="RussMenu.MainPage"
mc:Ignorable="d"
Background="{ThemeResource
ApplicationPageBackgroundThemeBrush}">
<Grid>
<NavigationView x:Name="nvTopLevelNav"
Loaded="nvTopLevelNav_Loaded"
Margin="0,12,0,0"
SelectionChanged="nvTopLevelNav_SelectionChanged"
ItemInvoked="nvTopLevelNav_ItemInvoked"
IsTabStop="False"
>
<NavigationView.MenuItems>
<NavigationViewItem Icon="Home" x:Name="Nav_Home">
<TextBlock Tag="Nav_Home">Home</TextBlock>
</NavigationViewItem>
<NavigationViewItem Icon="SaveLocal"
x:Name="Nav_Submit_COAQC_Results">
<TextBlock Tag="Nav_Submit_COAQC_Results">Submit COA/QC
Results</TextBlock>
</NavigationViewItem>
<NavigationViewItem Icon="Trim"
x:Name="Nav_Edit_Test_Results">
<TextBlock Tag="Nav_Edit_Test_Results">Edit Test
Results</TextBlock>
</NavigationViewItem>
<NavigationViewItem Icon="ReportHacked"
x:Name="Nav_Create_Claims_Ticket">
<TextBlock Tag="Nav_Create_Claims_Ticket">Create Claims
Ticket</TextBlock>
</NavigationViewItem>
<NavigationViewItem Icon="Message"
x:Name="Nav_Message_Page">
<TextBlock Tag="Nav_Message_Page">Contact
Leadership</TextBlock>
</NavigationViewItem>
<NavigationViewItem Icon="Print" x:Name="Nav_Print_Page">
<TextBlock Tag="Nav_Print_Page">Print</TextBlock>
</NavigationViewItem>
<NavigationViewItem Icon="Help" x:Name="Nav_about">
<TextBlock Tag="Nav_about">About</TextBlock>
</NavigationViewItem>
<Image Source="C:
Projects\Russ\RussMenu\RussMenu\Assets\Russell-Standard.jpg">
</Image>
</NavigationView.MenuItems>
<NavigationView.AutoSuggestBox>
<!-- See AutoSuggestBox documentation for
more info about how to implement search. -->
<AutoSuggestBox x:Name="NavViewSearchBox"
QueryIcon="Find"/>
</NavigationView.AutoSuggestBox>
</NavigationView>
<Frame x:Name="contentFrame" HorizontalAlignment="Center"
VerticalAlignment="Center" Margin="50,12,50,50"/>
</Grid>
</Page>
家
提交COA/QC
结果
编辑测试
结果
创建索赔
票
接触
领导层
印刷品
关于
第二个问题:
关于第一个问题,如果您想在选择项目时关闭/最小化左侧的菜单,可以添加PaneDisplayMode=“LeftCompact”。此外,您设置的框架应放置在NavigationView中。在这种情况下,扩展的侧栏不会被textBlock屏蔽
<NavigationView x:Name="nvTopLevelNav"
Loaded="nvTopLevelNav_Loaded"
Margin="0,12,0,0"
SelectionChanged="nvTopLevelNav_SelectionChanged"
ItemInvoked="nvTopLevelNav_ItemInvoked"
IsTabStop="False"
PaneDisplayMode="LeftCompact"
>
...
<Frame x:Name="contentFrame" HorizontalAlignment="Center"
VerticalAlignment="Center" Margin="50,12,50,50"/>
</NavigationView>
...
关于第二个问题,出现错误的原因是您没有将标记添加到NavigationViewItem,而是添加到textblock。因此,当您尝试获取item.tag时,它将崩溃。您可以按如下所示进行更正
<NavigationViewItem Icon="Home" x:Name="Nav_Home" Tag="Nav_Home">
<TextBlock>Home</TextBlock>
</NavigationViewItem>
家
关于第一个问题,如果您想在选择项目时关闭/最小化左侧菜单,可以添加PaneDisplayMode=“LeftCompact”。此外,您设置的框架应放置在NavigationView中。在这种情况下,扩展的侧栏不会被textBlock屏蔽
<NavigationView x:Name="nvTopLevelNav"
Loaded="nvTopLevelNav_Loaded"
Margin="0,12,0,0"
SelectionChanged="nvTopLevelNav_SelectionChanged"
ItemInvoked="nvTopLevelNav_ItemInvoked"
IsTabStop="False"
PaneDisplayMode="LeftCompact"
>
...
<Frame x:Name="contentFrame" HorizontalAlignment="Center"
VerticalAlignment="Center" Margin="50,12,50,50"/>
</NavigationView>
...
关于第二个问题,出现错误的原因是您没有将标记添加到NavigationViewItem,而是添加到textblock。因此,当您尝试获取item.tag时,它将崩溃。您可以按如下所示进行更正
<NavigationViewItem Icon="Home" x:Name="Nav_Home" Tag="Nav_Home">
<TextBlock>Home</TextBlock>
</NavigationViewItem>
家