C#/ UWP选择按钮后隐藏NavigationView

时间:2018-08-22 15:00:53

标签: c# uwp uwp-xaml

当前遇到一个问题,即在导航后单击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>

所有这些都已正确关闭,因此它们只是相关的位。请原谅我缺乏知识,仍在学习

2 个答案:

答案 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;