我在UWP应用程序中正在使用NavigationView
,并试图将后退按钮连接起来以进行内容更改。即使设置了导航视图的enable属性,也无法在内容更改期间启用按钮。目前,我只是希望能够从主视图导航到页面,然后再回到主视图。并且还能够更深入地浏览到堆栈中,因此可以使用“主视图”->“新视图”->“新视图”并备份到主视图。
MainPage.xaml / cs
<NavigationView x:Name="MainView_NavigationView"
PaneTitle="Git Manager"
PaneDisplayMode="LeftCompact"
ItemInvoked="MainView_NavigationView_ItemInvoked"
Header="Git Manager"
BackRequested="MainView_NavigationView_BackRequested">
<NavigationView.AutoSuggestBox>
<AutoSuggestBox PlaceholderText="Search"
QueryIcon="Find"/>
</NavigationView.AutoSuggestBox>
<NavigationView.MenuItems>
<NavigationViewItemSeparator/>
<NavigationViewItemHeader Content="Information" />
<NavigationViewItemSeparator/>
<NavigationViewItem x:Name="Login_NavViewItem"
Content="Login"
Tag="Clone Repositories"
Icon="AddFriend"/>
<NavigationViewItem x:Name="Remote_NavViewItem"
Content="Remote"
Icon="World"/>
<NavigationViewItem x:Name="Local_NavViewItem"
Content="Local"
Icon="Folder"/>
<NavigationViewItem x:Name="Schedule_NavViewItem"
Content="Schedule"
Icon="Calendar"/>
<NavigationViewItemSeparator/>
</NavigationView.MenuItems>
<NavigationView.Content>
<Frame x:Name="ContentFrame">
<Frame.ContentTransitions>
<TransitionCollection>
<NavigationThemeTransition />
</TransitionCollection>
</Frame.ContentTransitions>
<Grid>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" HorizontalTextAlignment="Center" TextAlignment="Center" Text="asdfasdfasdfasdf" />
</Grid>
</Frame>
</NavigationView.Content>
</NavigationView>
-
public sealed partial class MainPage : Page
{
public MainPage()
{
InitializeComponent();
}
private void MainView_NavigationView_ItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args)
{
if(args.IsSettingsInvoked)
{
}
else
{
NavigationViewItem item = args.InvokedItemContainer as NavigationViewItem;
switch(item.Content)
{
case "Login":
ContentFrame.Navigate(typeof(Views.Login));
break;
case "Remote":
ContentFrame.Navigate(typeof(Views.Remote));
break;
case "Local":
ContentFrame.Navigate(typeof(Views.Local));
break;
case "Schedule":
ContentFrame.Navigate(typeof(Views.Schedule));
break;
}
}
}
private async void MainView_NavigationView_BackRequested(NavigationView sender, NavigationViewBackRequestedEventArgs args)
{
var contentBox = new ContentDialog();
contentBox.Content = "Back clicked";
await contentBox.ShowAsync();
}
}
其他页面只是新的内容页面,上面带有文本块。所以我的两个问题是:
当更改内容时,如何连接后退按钮以使其真正启用并能够单击它,或者如何导航到导航视图内的新页面以启用此按钮/功能。
如何使用它来回浏览嵌套页面?
答案 0 :(得分:1)
当更改内容时,如何连接后退按钮以使其真正启用并能够单击它,或者如何导航到导航视图内的新页面以启用此按钮/功能。
要在NavigationView中启用/禁用BackButton,您需要为其设置IsBackEnabled=True/False
属性。然后,您可以使用Frame class CanGoBack
和CanGoForward
属性来使BackButton启用/禁用。
有关更多信息,请参见Navigation View和Navigation history and backwards navigation for UWP apps。