【发布时间】:2018-08-10 19:48:59
【问题描述】:
我有带有 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>
MainPage 后面的代码:
private void nvTopLevelNav_ItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args)
{
if (args.IsSettingsInvoked)
{
}
else
{
TextBlock ItemContent = args.InvokedItem as TextBlock;
if (ItemContent != null)
{
switch (ItemContent.Tag)
{
case "Nav_BlankPage1":
MainFrame.Navigate(typeof(BlankPage1));
break;
case "Nav_BlankPage2":
MainFrame.Navigate(typeof(BlankPage2));
break;
case "Nav_BlankPage3":
MainFrame.Navigate(typeof(BlankPage3));
break;
case "Nav_Settings":
break;
}
}
}
}
每个页面都有 3 个按钮(第一个是后面的代码):
private void btnBlankPage1_Click(object sender, RoutedEventArgs e)
{
var _frame = (Frame)Window.Current.Content;
_frame.Navigate(typeof(BlankPage1));
}
如果我使用NavigationView 按钮一切都很好,但如果我使用页面上的按钮NavigationView 就会消失。
你能澄清一下吗?
【问题讨论】:
-
我找到了一种方法:在 MainPage: public static Frame GlobalFrame;并在构造函数 GlobalFrame = MainFrame;以后只使用 GlobalFrame。但这看起来不是一个好方法。无论如何它都有效。
标签: uwp