WPF导航的实现方法有很多种。我们在文章中通过各种代码示例为大家详细介绍了这些方法的具体操作步骤,希望对大家有所帮助。
WPF中的有许多功能还需要我们在实际开发中去慢慢的体会其用法,以此来总结自己的使用技巧。在这里我们就先来了解下WPF导航的一些实现方法。
首先WPF导航在Page页中加一个< Hyperlink>的标签,再添中一个Click事件,指向后台处理程序。如下:
- < Hyperlink Click="
hyperlink_Click">你好< /Hyperlink>
在.cs文件中,需要引入 using System.Windows.Navigation命名空间
然后处理事件,也就是WPF导航主体了。
- void hyperlink_Click
(object sender, Routed
EventArgs args) - {
- }
有四种WPF导航方法(事例中是由当前页向Page4导航),如下:
1、
- Page4 page = new Page4();
- NavigationService ns = NavigationService.GetNavi gationService(this);
- ns.Navigate(page);
2、
- NavigationService ns = NavigationService.GetNavi gationService(this);
- ns.Source = new Uri ("Page4.xaml", UriKind. Relative);
3、
- NavigationService ns = NavigationService.GetNavi gationService(this);
- ns.Content = new Page4();
4、
- Page4 page = new Page4();
- this.NavigationService. Navigate(page);
5、
- this.Navigation Service.Refresh();//导航到本页
如果想缓存浏览过的页面可以在Page头中设置:
- < Page
- x:Class="BrowserApp"
- xmlns="http://schemas.microso ft.com/winfx/2006/xaml/ presentation"
- xmlns:x="http://schemas. microsoft.com/winfx/2006/xaml"
- WindowTitle="Page3"
- KeepAlive="True">
- < /Page>
如果想减少内存的开销,可以使用这个WPF导航方法(注意文中黑体字):
- public static readonly DependencyProperty RetainedStateDP;
- using System;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Navigation;
- public partial class RetainedState DPPage : System.Windows.Controls.Page
- {
- public static readonly DependencyProperty RetainedStateDP;
- static RetainedStateDPPage()
- {
- RetainedStateDPPage.RetainedStateDP =
- DependencyProperty.Register(
- "RetainedState",
- typeof(string),
- typeof(RetainedStateDPPage),
- new FrameworkPropertyMetadata(
- null,
- FrameworkPropertyMetadata Options.Journal));
- }
- public RetainedStateDPPage()
- {
- InitializeComponent();
- }
- public string RetainedState
- {
- get
- {
- return (string)base.GetValue (RetainedStateDPPage.RetainedStateDP);
- }
- set
- {
- base.SetValue(RetainedStateDPPage. RetainedStateDP, value);
- }
- }
- }