WPF导航在page中的实现方法

开发 开发工具
WPF导航的实现方法有很多种。我们在文章中通过各种代码示例为大家详细介绍了这些方法的具体操作步骤,希望对大家有所帮助。

WPF中的有许多功能还需要我们在实际开发中去慢慢的体会其用法,以此来总结自己的使用技巧。在这里我们就先来了解下WPF导航的一些实现方法。#t#

首先WPF导航在Page页中加一个< Hyperlink>的标签,再添中一个Click事件,指向后台处理程序。如下:

 

  1. < Hyperlink Click="
    hyperlink_Click"
    >你好< /Hyperlink>  

在.cs文件中,需要引入 using System.Windows.Navigation命名空间

然后处理事件,也就是WPF导航主体了。

 

  1. void hyperlink_Click
    (object sender, Routed
    EventArgs args)   
  2. {  
  3.  

 

有四种WPF导航方法(事例中是由当前页向Page4导航),如下:

1、

 

  1. Page4 page = new Page4();  
  2. NavigationService ns = 
    NavigationService.GetNavi
    gationService(this);  
  3. ns.Navigate(page); 

 

2、

 

  1. NavigationService ns = 
    NavigationService.GetNavi
    gationService(this);  
  2. ns.Source = new Uri
    ("Page4.xaml", UriKind.
    Relative); 

 

3、

 

  1. NavigationService ns = 
    NavigationService.GetNavi
    gationService(this);  
  2. ns.Content = new Page4(); 

 

4、
 

  1. Page4 page = new 
    Page4();   
  2. this.NavigationService.
    Navigate(page); 

 

5、

  1. this.Navigation
    Service.Refresh();//导航到本页 

如果想缓存浏览过的页面可以在Page头中设置:

 

  1. < Page 
  2. x:Class="BrowserApp" 
  3. xmlns="http://schemas.microso
    ft.com/winfx/2006/xaml/
    presentation"
     
  4. xmlns:x="http://schemas.
    microsoft.com/winfx/2006/xaml"
     
  5. WindowTitle="Page3"   
  6. KeepAlive="True">   
  7. < /Page> 

 

如果想减少内存的开销,可以使用这个WPF导航方法(注意文中黑体字):

 

  1. public static readonly 
    DependencyProperty RetainedStateDP;  
  2. using System;  
  3. using System.Windows;  
  4. using System.Windows.Controls;  
  5. using System.Windows.Navigation;  
  6. public partial class RetainedState
    DPPage : System.Windows.Controls.Page  
  7. {  
  8. public static readonly 
    DependencyProperty RetainedStateDP;  
  9. static RetainedStateDPPage()  
  10. {  
  11. RetainedStateDPPage.RetainedStateDP =  
  12. DependencyProperty.Register(  
  13. "RetainedState",  
  14. typeof(string),  
  15. typeof(RetainedStateDPPage),  
  16. new FrameworkPropertyMetadata(  
  17. null,  
  18. FrameworkPropertyMetadata
    Options.Journal));  
  19. }  
  20. public RetainedStateDPPage()  
  21. {  
  22. InitializeComponent();  
  23. }  
  24. public string RetainedState  
  25. {  
  26. get  
  27. {  
  28. return (string)base.GetValue
    (RetainedStateDPPage.RetainedStateDP);  
  29. }  
  30. set  
  31. {  
  32. base.SetValue(RetainedStateDPPage.
    RetainedStateDP, value);  
  33. }  
  34. }  

 

 

责任编辑:曹凯 来源: 博客园
相关推荐

2009-12-25 10:46:36

WPF Page

2009-06-22 17:26:26

页面导航JSF

2009-12-28 17:33:19

WPF视频音频

2009-12-24 17:57:53

WPF页面跳转

2009-12-28 11:14:29

WPF显示文本

2009-12-24 13:31:25

WPF UI设计

2009-12-29 14:58:31

WPF优点

2009-11-13 09:15:34

WPF

2009-07-23 14:47:03

Page_Load方法ASP.NET

2009-12-28 16:10:38

WPF生成文件

2009-08-05 15:17:02

NTILE函数

2009-12-25 14:25:39

WPF图标

2009-12-28 13:47:35

WPF对话框

2009-12-29 14:00:02

WPF Dispatc

2023-12-05 15:58:06

React开发

2009-06-24 09:36:52

XML实现breadcMVC

2023-12-29 08:06:40

开源软件导航前端

2022-05-24 14:37:49

React条件渲染

2011-08-10 09:12:44

SQL Server插入图像存储过程

2024-09-13 08:27:00

点赞
收藏

51CTO技术栈公众号