UWP导航视图消失

UWP导航视图消失,uwp,Uwp,我有3个按钮的NavigationView <NavigationView x:Name="nvTopLevelNav" Margin="0,0,0,0" ItemInvoked="nvTopLevelNav_ItemInvoked" IsTabStop="False" AlwaysShowHeader="False" VerticalContentAlignment="

我有3个按钮的NavigationView

<NavigationView x:Name="nvTopLevelNav"
            Margin="0,0,0,0"
            ItemInvoked="nvTopLevelNav_ItemInvoked"
            IsTabStop="False"
            AlwaysShowHeader="False"
            VerticalContentAlignment="Stretch" 
            HorizontalContentAlignment="Stretch" 
            VerticalAlignment="Stretch" 
            Grid.RowSpan="1" 
            Grid.Row="1" 
            Grid.Column="1" 
            Grid.ColumnSpan="1"
            Padding="0,0,0,0" >
        <NavigationView.MenuItems>
            <NavigationViewItem Tag="Nav_BlankPage1" VerticalContentAlignment="Center">
                <TextBlock Tag="Nav_BlankPage1" Text="Nav_BlankPage1" />
            </NavigationViewItem>
            <NavigationViewItem Tag="Nav_BlankPage2" VerticalContentAlignment="Center">
                <TextBlock Tag="Nav_BlankPage2"   Text="Nav_BlankPage2"/>
            </NavigationViewItem>
            <NavigationViewItem Tag="Nav_BlankPage3" VerticalContentAlignment="Center">
                <TextBlock Tag="Nav_BlankPage3"   Text="Nav_BlankPage3" />
            </NavigationViewItem>
        </NavigationView.MenuItems>
        <Frame x:Name="MainFrame" 
           Grid.Column="1" 
           Grid.Row="1"
           VerticalContentAlignment="Stretch" VerticalAlignment="Stretch" Padding="0,0,0,0">
            <RelativePanel Grid.Column="0"
                   Grid.Row="1">
             </RelativePanel>
        </Frame>
    </NavigationView>
每页有3个按钮(第一个按钮的代码隐藏):

如果我使用
NavigationView
按钮,一切都很好,但是如果我使用页面上的按钮
NavigationView
就消失了


您能澄清一下吗?

原因是您使用了错误的
框架进行导航。在您的案例中,UI树看起来有点像这样:

  • 窗口
      • 导航视图页
        • 大型机
          • 页面
当您在
导航视图
菜单中导航时,一切正常,因为您使用的是内部
大型机
。但是,在另一个页面上,您可以在
窗口
(Frame)Window.Current.Content
)的根目录下选择
框架
,并在其中导航。这将导航掉包含
NavigationView
的页面,并在其位置上的
BlankPage1
中导航,因此
NavigationView
将消失

相反,您必须使用
导航视图
中的
大型机
进行导航。最简单的方法是向包含
NavigationView
的页面添加
Frame
属性,然后将其用于导航:

public static Frame AppFrame { get; private set; }
并在页面构造函数中指定它:

AppFrame = MainFrame;
现在,您可以使用它来导航:

NavigationViewPage.AppFrame.Navigate(typeof(BlankPage1));
其中
NavigationViewPage
是包含
NavigationView


最后一个注意事项-您不必为发布问题而道歉,这就是本网站的目的;-)

我找到了一种方法:在主页上:公共静态框架GlobalFrame;在构造函数中,GlobalFrame=大型机;以后只使用GlobalFrame。但这看起来不是一个好办法。不管怎样,它是有效的。
AppFrame = MainFrame;
NavigationViewPage.AppFrame.Navigate(typeof(BlankPage1));