WPF的逻辑树与视觉树(2)Visual容器】的更多相关文章

原文:WPF的逻辑树与视觉树(2)Visual容器   一.摘要 虽然我们平时几乎不会从该类派生,但要想了解视觉树就必须要了解Visual,Visual是一个基本抽象类,继承自DependencyObject.其是所有控件的基类.并提供了视觉树操作的基本方法. 二.提纲 视觉树是一棵树 遍历视觉树 内置Visual集合容器ContainerVisual 小结 视觉树是一棵树 这好像是一句废话,但也没有错.我们来看下Visual提供的一些基本的成员. 首先我们创立一个测试的对象 public cl…
WPF中提供了遍历逻辑树和视觉树的辅助类:System.Windows.LogicalTreeHelper和 System.Windows.Media.VisualTreeHelper. 注意遍历的位置,逻辑树可以在类的构造函数中遍历.但是,视觉树必须在经过至少一次的布局后才能形成. 所以它不能在构造函数遍历.通常是在OnContentRendered进行,这个函数为在布局发生后被调用. 其实每个Tree结点元素本身也包含了遍历的方法. 比如,Visual类包含了三个保护成员方法VisualPa…
原文:WPF的逻辑树与视觉树(1)基本概念     一.摘要 逻辑树与视觉树属于WPF的基本概念,学过WPF或者Silverlight的朋友一定会对其有所耳闻,这篇文章将来探讨逻辑树与视觉树的特质以及两者的区别 二.本文提纲 WPF Inspector工具介绍 观察逻辑树与视觉树 与ASP.NET服务器控件比较(控件为逻辑树,HTML为视觉树) 与JavaScript客户端控件比较(一个根逻辑树,HTML为视觉树) 组装控件 小结 1.WPF Inspector工具介绍 图1-1 WPF Ins…
原文:WPF的逻辑树和视觉树 这部分的内容来自于即将出版的新书<WPF Unleashed>的第三章样章.关于什么是逻辑树,我们先看下面的一个伪XAML代码的例子: <Window ......>     <StackPanel>      <Label>LabelText</Lable>     </StackPanel></Window>在这样一个简单UI中,Window是一个根结点,它有一个子结点StackPanel…
轉載地址:http://blog.csdn.net/changtianshuiyue/article/details/26981797 理解WPF中的视觉树和逻辑树  Understanding the Visual Tree and Logical Tree in WPF这篇文章讨论WPF中视觉树和逻辑树的细微差别.同时提供了一个小程序供读者稍后分析.如果你已经对着两个概念完全不熟悉,我建议你先读SDK文档中的这篇文章“URL”. 背景 目前SDK文档中关于视觉树和逻辑树的介绍还不是很完全.从…
原文:WPF的逻辑树与视觉树(3)Visual呈现 这篇就点到为止,挑重点讲 绘图方式有两种 1.继承UIElement,重写OnRender方法 public partial class Window5 : Window { public Window5() { InitializeComponent(); this.Content = new RectangleElement(); } } public class RectangleElement : UIElement { protect…
XAML天生就是用来呈现用户界面的,这是由于它具有层次化的特性.在WPF中,用户界面由一个对象树构建而成,这棵树叫作逻辑树.逻辑树的概念很直观,但是为什么要关注它呢?因为几乎WPF的每一方面(属性.事件.资源等)都有与逻辑树相关联的行为.例如,属性值有时会沿着树自动传递给子元素,而触发的事件可以自底向上或自顶向下遍历树. 与逻辑树类似的一个概念是可视树.可视树基本上是逻辑树的扩展,在可视树中,节点都被打散,分放到核心可视组件中.可视树提供了一些详细的可视化实现,而不是把每个元素当作一个“黑盒”.…
前面几节说了一些WPF的基础,包括XAML和布局等.在接下来的几节,我们来说说WPF的核心概念,包括逻辑树和可视树.依赖对象和依赖属性.路由事件.命令这几个部分.本节介绍下逻辑树(Logical Tree)和可视树(Visual Tree). 逻辑树和可视树 在WPF中,用户界面是由XAML来呈现的.粗略地讲,从宏观上看,叶子为布局组件和控件所组成的树既是逻辑树,从微观上看,将逻辑树的叶子再放大可看到其内部是由可视化组件(继承自Visual类)组成的,叶子为这些可视化组件组成的树既是可视树. 逻…
WPF中的逻辑树是指XAML元素级别的嵌套关系,逻辑树中的节点对应着XAML中的元素. 为了方便地自定义控件模板,WPF在逻辑树的基础上进一步细化,形成了一个“可视化树(Visual Tree)”,树中的每个节点代表一个可以在控件模板中定制的元素.简言之,可视化树主要是为设计WPF控件模板而服务的.…
一.什么是逻辑树 逻辑树就是描述WPF界面元素的实际构成,它是由程序在XAML中所有的UI元素组成.最显著的特点就是由布局控件.或者其他常用的控件组成. <Window x:Class="WpfRouteEvent.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/win…