WPF树应用相关技巧总结
创始人
2024-06-18 11:01:45
0

WPF树应用是一个非常重要的知识点。这一知识,需要我们在学习WPF的过程中放在重点学习,以方便将来的应用。在许多技术中,元素和组件按照树结构的形式组织,在这种结构中,开发人员可以直接操作树来影响应用程序的呈现。#t#

Windows Presentation Foundation (WPF) 还使用了多个树结构术语来定义程序元素之间的关系。

在WPF树应用项目中,我们要使WPF应用程序多语言。那么就要了解要多语言的内容在xaml文件中的位置。那么我们必须要读取xaml文件信息。

WPF 中主要的树结构是元素树。如果使用 XAML 创建应用程序页,则将基于标记中元素的嵌套关系创建树结构。如果使用代码创建应用程序,则将基于为属性(实现给定元素的内容模型)指定属性值的方式创建树结构。在 Windows Presentation Foundation (WPF) 中,处理和使用概念说明元素树的方法实际上有两种:即逻辑树和可视化树。逻辑树与可视化树之间的区别并不始终很重要,但在某些 WPF 子系统中它们可能会偶尔导致问题,并影响您对标记或代码的选择。
尽管您不会始终直接操作逻辑树或可视化树,但理解树之间如何进行交互的概念也是理解 WPF 中的属性继承和事件路由如何工作的一种方法。

WPF树应用是在xml的标准上实现的,它有两种方法处理元素树(逻辑树、可视树)。而在查找资源时我们通常使用逻辑树。在代码中,我们要读取xaml文件,我们要解剖window对象。然后一成一成的分析window里面的子对象。

Windows Presentation Foundation (WPF) 中的大部分类都从四个类派生而来,这四个类在 SDK 文档中常常被称为基元素类。这些类包括 UIElement、FrameworkElement、ContentElement 和 FrameworkContentElement。DependencyObject 也是一个相关类,因为它是 UIElement 和 ContentElement 的通用基类。
UIElement 和 ContentElement 都是从 DependencyObject 派生而来

重点:Window对象也是DependencyObject类型。

1、递归window对象里面的子对象
 

  1. IEnumerable ienum = 
    this.GetChildren(WindowObj);  
  2. foreach (object obj in ienum)  
  3. {  
  4. DependencyObject 
    childVisual = obj as 
    DependencyObject;  
  5. ...... 

2、分析每个对象

  1. switch (obj.GetType().
    FullName)  
  2. {  
  3. case "System.Windows.
    Controls.Label":  
  4. string labelContent=
    (obj as Label).Content;  
  5. break;  
  6. ...... 

3、LogicalTreeHelper 类

这个类为逻辑树遍历提供 GetChildren、GetParent 和 FindLogicalNode 方法。不清楚FindName是不是其中的一个。在使用FindName时,你可能发现FindName无效,那么可能是你动态添加控件的时候是否注册了控件

  1. (parentObj.RegisterName
    (objname,obj)). 

以上就是我们对WPF树应用的理解,希望对大家有所帮助。

相关内容

热门资讯

如何允许远程连接到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 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...