超链接导航和片段导航
除了使用NavigationService.Navigate()进行页面导航外,还可以直接在Xaml中使用超链接导航。
从一页导航到另一页最简单的方法是使用 Hyperlink。通过下面的标记中所示的 Hyperlink 元素,可以以声明方式将 Hyperlink 添加到 Page。
代码
<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 元素。
代码
<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 示例,它配置为导航到内容片段。
代码
<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 事件的片段导航方案。