当前遇到一个问题,即在导航后单击AppBarButton不会最小化NavView。与NavView_SelectionChanged void不同,后者会在选择NavigationViewItem后自动最小化NavView。 我不确定更新内容框架后如何隐藏NavView。
这是MainPage.xaml.cs
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
string appName = Windows.ApplicationModel.Package.Current.DisplayName;
}
private void NavView_SelectionChanged(Windows.UI.Xaml.Controls.NavigationView sender, Windows.UI.Xaml.Controls.NavigationViewSelectionChangedEventArgs args)
{
NavigationViewItem item = args.SelectedItem as NavigationViewItem;
switch (item.Tag.ToString())
{
case "OverView_Page":
ContentFrame.Navigate(typeof(Content_Pages.Overview_Page));
break;
case "Bills_Page":
ContentFrame.Navigate(typeof(Content_Pages.Bills_Page));
break;
case "BillPayer_Page":
ContentFrame.Navigate(typeof(Content_Pages.BillPayer_Page));
break;
case "Transfers_Page":
ContentFrame.Navigate(typeof(Content_Pages.Transfers_Page));
break;
case "PayDates_Page":
ContentFrame.Navigate(typeof(Content_Pages.PayDates_Page));
break;
}
}
private void SettingsButton_Click(object sender, RoutedEventArgs e)
{
ContentFrame.Navigate(typeof(Content_Pages.SettingsPage));
}
}
和MainPage.XAML AppBarButtons:
<mux:NavigationView.MenuItems>
<StackPanel Orientation="Horizontal" UseLayoutRounding="False">
<AppBarButton Icon="Setting" Margin="1, 2, 0, 0" Tag="Settings_Page" HorizontalAlignment="Center" Width="56.5" Height="56.5" ClickMode="Press" Click="SettingsButton_Click"/>
</StackPanel>
所有这些都已正确关闭,因此它们只是相关的位。请原谅我缺乏知识,仍在学习
答案 0 :(得分:1)
首先,我建议您在新的 winui 库中使用最新版本的 NavigationView :https://docs.microsoft.com/en-us/windows/uwp/design/controls-and-patterns/navigationview
上述文档中的相关部分
NavigationView可以通过 PaneDisplayMode 属性设置为不同的显示模式:对于您的方案,您可以在以下值之间进行切换:左和 LeftCompact
每当用户单击应用栏按钮时,都会调用其单击事件,在该事件内,您可以将 PaneDisplayMode 属性设置为所需的值,并通过这种方式可以控制何时显示NavigationView隐藏器或执行其他操作想要它基本上完成,您可以使用此较新版本的控件执行很多操作,请阅读上面的docs链接以获取更多详细文档。希望这会有所帮助。
答案 1 :(得分:1)
在调用ContentFrame.Navigate
中的SettingsButton_Click
之后添加以下行:
NavView.IsPanelOpen = false;