简单的Page切换
启动时为page的切换
这里是启动时就是page页面;
先创建几个page页面,内部创建几个按钮比如前进后退;
Page的切换用到的最重要的函数:NavigationService
判断后退:
//判断是否可以后退
if (NavigationService.CanGoBack)
NavigationService.GoBack();//后退
判断前进:
if (NavigationService.CanGoForward)
NavigationService.GoForward();
跳转到指定page
//跳转到指定的页面;
NavigationService.Navigate(new Uri("Page3.xaml", UriKind.RelativeOrAbsolute));
使用Hyperlink切换
添加一个TextBlock控件
删除Xaml中的Text="TextBlock",将最后面的/>改为>zai在后面添加HyperLink
<TextBlock HorizontalAlignment="Left" Margin="117,371,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Height="34" Width="160" FontSize="20">跳转到<Hyperlink NavigateUri="Page3.xaml">Page3</Hyperlink></TextBlock>
<TextBlock HorizontalAlignment="Left" Margin="523,373,0,0" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="20">跳转到<Hyperlink NavigateUri="http://www.baidu.com">百度</Hyperlink></TextBlock>
windows窗体内加载page页
第一步将Xaml中的Window类改为 NavigationWindow类,并将其中的<Grid>删除,同时更改代码里面的继承类;
然后在“Title” 这一行后面加上Source(手动添加吧,我这边测试Source选项很难点出来不知道什么原因;)如果不希望显示前进后退栏再输入ShowsNavigationUI="False"
Title="MainWindow" Height="450" Width="800" Source="Page1.xaml" ShowsNavigationUI="False"/>
windows窗体内加载page页2:
添加一个Frame控件到窗体,如果想要填满窗体将标签内的内容删完;
然后在属性-公共里面-Source中设置要绑定的page,如果不希望显示前进后退栏将NavigationUIVisibility属性设置为Hidden;这个时候就可以显示page页了;(最好设置一个名字后面要用);
添加一个StackPanel控件,如果想要填满窗体可以将StackPanel内的内容全部删除
将一个StackPanel空间设置分为两部分,设置FrameA在右边部分:设置布局内的Column属性为1;
并在左边添加三个按钮,并注册按钮事件;
<Frame x:Name="FrameA" Content="FrameA" Source="/pagetext;component/Page1.xaml" NavigationUIVisibility="Hidden" Grid.ColumnSpan="2" Grid.Column="1" />
<StackPanel >
<Button Content="page1" Click="Page1_click"/>
<Button Content="page2" Click="Page2_click"/>
<Button Content="page3" Click="Page3_click"/>
</StackPanel>
设置FrameA绑定的页;
private void Page1_click(object sender, RoutedEventArgs e)
{
this.FrameA.Source = new Uri("Page1.xaml", UriKind.RelativeOrAbsolute);
}
private void Page2_click(object sender, RoutedEventArgs e)
{
this.FrameA.Source = new Uri("Page2.xaml", UriKind.RelativeOrAbsolute);
}
private void Page3_click(object sender, RoutedEventArgs e)
{
this.FrameA.Source = new Uri("Page3.xaml", UriKind.RelativeOrAbsolute);
}