[英]Wiring up back button in NavigationView for UWP app
我在我的 UWP 應用程序中使用了NavigationView
,並試圖將后退按鈕連接起來以進行內容更改。 即使我設置了導航視圖的啟用屬性,我也無法在內容更改期間啟用按鈕。 目前,我只是希望能夠從主視圖導航到頁面,然后返回到主視圖。 並且還能夠更深入地導航到堆棧中,因此主視圖 -> 新視圖 -> 新視圖並返回到主視圖。
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();
}
}
其他頁面只是帶有文本塊的新內容頁面。 所以我的兩個問題是:
如何連接后退按鈕以實際啟用並能夠在更改內容時單擊它,或者如何導航到導航視圖中的新頁面以啟用此按鈕/功能。
如何使用它來回導航嵌套頁面?
如何連接后退按鈕以實際啟用並能夠在更改內容時單擊它,或者如何導航到導航視圖中的新頁面以啟用此按鈕/功能。
要啟用/禁用 NavigationView 中的 BackButton,您需要為其設置IsBackEnabled=True/False
屬性。 然后,您可以使用Frame 類CanGoBack
和CanGoForward
屬性來啟用/禁用 BackButton。
有關詳細信息,請參閱UWP 應用的導航視圖和導航歷史記錄以及向后導航。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.