UWP导航视图消失
我有3个按钮的NavigationViewUWP导航视图消失,uwp,Uwp,我有3个按钮的NavigationView <NavigationView x:Name="nvTopLevelNav" Margin="0,0,0,0" ItemInvoked="nvTopLevelNav_ItemInvoked" IsTabStop="False" AlwaysShowHeader="False" VerticalContentAlignment="
<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));