WPF导航在page中的实现方法
创始人
2024-06-18 12:01:25
0

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. }  

 

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...