Navigation介绍
总的来说就是UWP可以有多个页面,MainPage.xaml
中是会一直在页面中出现的内容。比如汉堡菜单之类的东西,当然也是可以设置为隐藏的。还要在MainPage.xaml
中设置前进后退等按钮。
<StackPanel><StackPanel Orientation="Horizontal"><Button Name="HomeButton" Content="Home" Click="HomeButton_Click" Margin="0,0,20,0"/><Button Name="BackButton" Content="Back" Click="BackButton_Click" Margin="0,0,20,0"/><Button Name="ForwardButton" Content="Forward" Click="ForwardButton_Click" Margin="0,10,0,0"/><Button Name="NavigateButton" Content="Navigate Root Frame" Click="NavigateButton_Click"/></StackPanel><Frame Name="MyFrame"></Frame></StackPanel>
然后分别设置这些按钮的事件。之前在主页面中设置了Frame名字为MyFrame,所以我们设置为在UWP打开时加载主页面和Page1。如下所示:
public MainPage()
{this.InitializeComponent();MyFrame.Navigate(typeof(Page1));
}
设置Home按钮的事件,Home就是回到Page1,所以如下所示:
private void HomeButton_Click(object sender, RoutedEventArgs e)
{MyFrame.Navigate(typeof(Page1));
}
设置后退按钮的事件,要先判断可不可以后退。
private void BackButton_Click(object sender, RoutedEventArgs e)
{if (MyFrame.CanGoBack){MyFrame.GoBack();}
}
设置前进按钮的事件,也要先判断可不可以前进。
private void ForwardButton_Click(object sender, RoutedEventArgs e)
{
if (MyFrame.CanGoForward){MyFrame.GoForward();}
}
然后就可以设置每个页面的内容,设置Page1的内容。
<StackPanel><TextBlock FontSize="48" Text="Page 1"/><HyperlinkButton Content="Go to Page 2" Click="HyperlinkButton_Click"/><HyperlinkButton Content="Go to Microsoft.com" NavigateUri="www.microsoft.com"/>
</StackPanel>
<HyperlinkButton>
属性是可以导航到指定位置,他不仅可以导航到别的页面:
<HyperlinkButton Content="Go to Page 2" Click="HyperlinkButton_Click"/>
,
还可以导航指定的网页中:
<HyperlinkButton Content="Go to Microsoft.com"
然后再设置Navigate的按钮事件。
private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
{Frame.Navigate(typeof(Page2));
}