WPF中的页面跳转
WPF中的页面跳转分为window和page两类。一般来说window相当于page的容器。所以可以认为window中包含page。window中的页面跳转一般是创建一个实例然后调用show方法。Page的页面跳转可以有前台跳转和后台跳转。前台跳转:<Button Height="35" Width="60"><Hyperlink x:Name="Link1"
WPF中的页面跳转分为window页面跳转和page页面跳转两类。window为顶级窗体,其中可以包含frame和page。而frame和page可以相互包含。
window中的页面跳转一般是创建一个窗体然后调用show方法。
Page的页面跳转根据其宿主元素一般分为navigationiwindow和frame两种方式。
其中frame为轻量级元素,可以嵌入page中间。
而Navigationwindow为顶级窗口不可以包含于其他元素中间。而且navigationwindow有导航栏,类似于浏览器的导航界面,可以记录历史导航。但只提供跳转功能而不保存状态信息,可以通过该类提供的方法来保存状态信息。
前台跳转:
<Button Height="35" Width="60" >
<Hyperlink x:Name="Link1" NavigateUri="Page1.xaml">Page1</Hyperlink>
</Button> //前台跳转
<Button Height="35" Width="60" Margin="228,218,229,66" >
<Hyperlink x:Name="Link2" Click="Link2_Click">Pag2</Hyperlink>
</Button>
<Button Height="35" Width="60" Margin="228,68,229,216" Click="Button_Click">
page1
</Button>
<Frame x:Name="Nav" Width="517" HorizontalAlignment="Right" ></Frame>
用Hyperlink的方式直接跳转至目标页面。
后台跳转:
1、用Hyperlink进行跳转
Hyperlink实现了NavigateUri 属性,该属性是使用单击超链接时应导航到的内容的 Uri进行设置的。但是只有在Hyperlink的直接或间接父项是导航宿主(包括 NavigationWindow、Frame)
①利用frame进行跳转
private void Link2_Click(object sender, RoutedEventArgs e)
{
Page2 p2 = new Page2();
Nav.Content = p2;
}
Frame 是能够定位到并显示内容的内容控件。 Frame 可以在其他内容中承载,与其他控件和组件。
②也用Content直接创建
this.Content = new Page2();
③使用navigationservice类
1、
Page2 page = new Page2();
NavigationService ns = NavigationService.GetNavigationService(this);
ns.Navigate(page);
、
2、
NavigationService ns = NavigationService.GetNavigationService(this);
ns.Source = new Uri("Page2.xaml", UriKind.Relative);
3、
NavigationService ns = NavigationService.GetNavigationService(this);
ns.Content = new Page2();
4、
Page2 page = new Page2();
this.NavigationService.Navigate(page);
2、用frame进行导航
private void Button_Click(object sender, RoutedEventArgs e)
{
this.pc.Navigate(new Uri("Page1.xaml",UriKind.Relative));
}
3、用Navigationwindow类进行页面跳转
private void Button_Click(object sender, RoutedEventArgs e)
{
NavigationWindow wds = new NavigationWindow();
wds.Source = new Uri("Page1.xaml", UriKind.Relative);
wds.Show();
}
NavigationWindow 派生自 Window ,扩展了导航和显示内容的功能。 因为其前后导航的功能,使得导航更加便捷,因此这个框架也是我最喜欢使用的方式。
以下介绍一些简单概念:
概念内容文档参考:
Page
Page 封装一页可导航的内容,并具有以下关键成员:
生存期管理:KeepAlive。
导航:NavigationService。
外观:Background、Content、FontFamily、FontSize、Foreground、ShowsNavigationUI、Template、Title。
宿主窗口外观:WindowHeight、WindowWidth、WindowTitle。
可以使用标记、标记和代码隐藏或者代码来定义页。
NavigationWindow
NavigationWindow 派生自Window,扩展了导航和显示内容的功能。
内容可以是任何 .NET Framework 对象或 HTML 文件。但是,一般而言,Page 对象是将内容打包以便导航的首选方式。
通过用所需内容的 URI 来设置Source 属性,可以导航到内容。
Frame
Frame 是能够定位到并显示内容的内容控件。 Frame 可以在其他内容中承载,与其他控件和组件。
当 Frame 控件导航到 HTML 内容时,内部Frame 控件实例化本机 webbrowser Activex 控件。WPF
通过对函数控件启用安全功能在浏览器 Activex 控件。应用于的功能控制对 XBAP 和独立应用程序不同。
某些应用程序应通过附加功能控制防止恶意内容运行。有关更多信息,请参见中的 “浏览器控件和功能控制”在安全性 (WPF)
的和WebBrowser Control Overviews and Tutorials部分。内容可以是任何类型的 .NET Framework 对象和 HTML 文件。但是,通常,页是首选该方法可导航的内容打包 (请参见Page)。
内容可以导航到通过设置与 URI 的 Source 属性所需内容的。另外,可以使用Navigate 方法的以下重载之一,内容可以导航到:
Navigate(Uri)
Navigate(Uri, Object)
更多推荐
所有评论(0)