WPF树应用相关技巧总结

开发 开发工具
WPF树应用主要包括对元素树的使用。这一点在实际编程中有重要的体现。希望本文介绍内容可以帮助大家提高对WPF的理解程度。

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树应用的理解,希望对大家有所帮助。

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

2009-12-31 10:21:53

Silverlight

2009-12-25 11:23:43

WPF命令模型

2009-12-23 18:16:35

WPF布局控件

2009-12-25 15:58:37

WPF数据处理

2010-01-27 17:45:15

Android应用技巧

2009-12-23 10:35:55

WPF应用程序项目

2009-12-29 16:08:41

Silverlight

2009-12-30 18:18:32

Silverlight

2010-01-15 13:52:42

VB.NET属性设置

2009-12-30 10:25:03

Silverlight

2010-01-27 15:29:25

Android屏幕大小

2010-01-28 10:55:14

Android电源管理

2009-12-31 16:44:53

Silverlight

2010-01-25 13:50:41

Android输出Lo

2009-11-17 11:24:00

PHP应用技巧

2009-11-18 18:24:26

PHP模板

2009-12-25 17:39:01

WPF验证

2010-07-14 17:26:36

SOAP协议

2010-01-25 18:27:54

Android进度条

2010-02-05 13:44:06

C++ eof()函数
点赞
收藏

51CTO技术栈公众号