除了使用NavigationService.Navigate()进行页面导航外,还可以直接在Xaml中使用超链接导航。
从一页导航到另一页最简单的方法是使用 Hyperlink。通过下面的标记中所示的 Hyperlink 元素,可以以声明方式将 Hyperlink 添加到 Page。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
<
Page
xmlns = " http://schemas.microsoft.com/winfx/2006/xaml/presentation "
WindowTitle = " Page With Hyperlink "
WindowWidth = " 250 "
WindowHeight = " 250 " >
...
< Hyperlink NavigateUri = " UriOfPageToNavigateTo.xaml " >
Navigate to Another Page
</ Hyperlink >
...
</ Page >
xmlns = " http://schemas.microsoft.com/winfx/2006/xaml/presentation "
WindowTitle = " Page With Hyperlink "
WindowWidth = " 250 "
WindowHeight = " 250 " >
...
< Hyperlink NavigateUri = " UriOfPageToNavigateTo.xaml " >
Navigate to Another Page
</ Hyperlink >
...
</ Page >
片段导航
片段导航是导航到当前 Page 或另一个 Page 中的内容片段。在 WPF 中,内容片段是由命名元素包含的内容。命名元素是设置了 Name 特性的元素。下面的标记演示一个包含内容片段的命名 TextBlock 元素。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
<
Page xmlns
=
"
http://schemas.microsoft.com/winfx/2006/xaml/presentation
"
WindowTitle = " Page With Fragments " >
...
<!-- Content Fragment called " Fragment1 " -->
< TextBlock Name = " Fragment1 " >
Ea vel dignissim te aliquam facilisis ...
</ TextBlock >
...
</ Page >
WindowTitle = " Page With Fragments " >
...
<!-- Content Fragment called " Fragment1 " -->
< TextBlock Name = " Fragment1 " >
Ea vel dignissim te aliquam facilisis ...
</ TextBlock >
...
</ Page >
对于可导航到内容片段的 Hyperlink,NavigateUri 特性必须包含以下内容:
片段 URI 的格式如下。
PageURI#ElementName
下面演示一个 Hyperlink 示例,它配置为导航到内容片段。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
<
Page
xmlns = " http://schemas.microsoft.com/winfx/2006/xaml/presentation "
WindowTitle = " Page That Navigates To Fragment " >
...
< Hyperlink NavigateUri = " PageWithFragments.xaml#Fragment1 " >
Navigate To pack Fragment
</ Hyperlink >
...
</ Page >
xmlns = " http://schemas.microsoft.com/winfx/2006/xaml/presentation "
WindowTitle = " Page That Navigates To Fragment " >
...
< Hyperlink NavigateUri = " PageWithFragments.xaml#Fragment1 " >
Navigate To pack Fragment
</ Hyperlink >
...
</ Page >
说明:
本节介绍 WPF 中片段导航的默认实现。WPF 也允许您实现自己的在某种程度上需要处理 NavigationService.FragmentNavigation 事件的片段导航方案。