对WPF逻辑树概念的理解

WPF 中,逻辑树的概念至关重要。如果一名 WPF 开发人员不知道什么是逻辑树,或者对逻辑树一知半解,那么他就不是一名合格的 WPF 开发人员。下面就把逻辑树这个概念比较容易被曲解的地方加以说明:

1、逻辑树并不只存在于使用 XAML 构建的对象中,使用程序代码构建的对象同样存在逻辑树。

XAML 是专门用于 WPF 编程的新 API,就像当初 C# 是专门用于 .NET 开发的 API 一样。因此,只要“界面

对象”被创建出来,我们就可以为其绘制逻辑树。

2、逻辑树是描述的是“界面对象”的构建过程,而不是“界面对象”的结构。

逻辑树是由“界面对象”以及其所包含的对象共同构成的,这些被包含的对象是在创建“界面对象”时被添加到

该“界面对象”的)。

3、逻辑树是由“界面对象”及其“内容属性”构成的,他们之间是树结构中的“父结点”与“子结点”。“子结点”还

可以继续展开直至“子结点”不再包含“内容属性”,那么就可以说这个“子结点”是逻辑树中的一个“叶子点”。

4、没有值的“内容属性”不会出现在逻辑树中,只有具有属性值的“内容属性”才是逻辑树的一个结点。

掌握了以上内容后,当我们拿到一段 XAML 或是一段 C# 代码时就可以很轻松地把它所表示的逻辑树画出来了。WPF

中的许多概念都需要靠逻辑树来帮助理解,所以能够正确地画出逻辑树至关重要。

时间: 2024-10-26 04:06:34

对WPF逻辑树概念的理解的相关文章

2000条你应知的WPF小姿势 基础篇<40-44 启动关闭,Xaml,逻辑树>

原文:2000条你应知的WPF小姿势 基础篇<40-44 启动关闭,Xaml,逻辑树> 在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师.最为出色的是他维护了两个博客:2,000Things You Should Know About C#  和 2,000 Things You Should Know About WPF .他以类似微博式的150字简短语言来每天更新一条WPF和C#重要又容易被遗忘的知识.Follow他的博客也有一段日子了,很希望能够分享给

wsdl-本人webservice的概念的理解和疑惑

问题描述 本人webservice的概念的理解和疑惑 一直以来在基于springMVC做restful风格的开发. 最近要跟外面做接口,没有restful风格的接口,只有webservice方式. 于是上网恶补webservice的知识,看完之后还是有很多不确定的地方. 整理如下,望各位高人指正. 1.不管什么语言最终实现功能的单位差不多都是方法(或者叫函数),所以将这块开放到网上,供大家调用.这块各个语言有相应的工具来实现,最终得到一个url 2.要想调用,首先得让别人知道方法名.需要传入哪些

deleted 和 inserted 是逻辑(概念)表。

概念 deleted 和 inserted 是逻辑(概念)表.这些表在结构上类似于定义触发器的表(也就是在其中尝试用户操作的表):这些表用于保存用户操作可能更改的行的旧值或新值.例如,若要检索 deleted 表中的所有值,请使用: SELECT *FROM deletedCREATE TRIGGER TR_LKCRM_SQJBXXINS ON dbo.LKCRM_SQSP_SQJBXX FOR INSERT AS BEGIN  DECLARE CUR_LKCRM_SQJBXXINS CURSO

Ruby中的block概念的理解

  Ruby中的block概念的理解:          文中给出了Javascript代码块与Ruby代码块的对比,需要的朋友可以参考下 Ruby 里的 block一般翻译成代码块,block 刚开始看上去有点奇怪,因为很多语言里面没有这样的东西.事实上它还不错. First-class function and Higher-order function First-class function 和 Higher-order function 是函数式编程语言里面的概念,听起来好像很高端的样

架构漫谈(二):认识概念是理解架构的基础

原文:架构漫谈(二):认识概念是理解架构的基础 架 构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,专栏将会以Kevin的架构经验为基础,逐步讨论什么是架构.怎样做好架构.软件架构如何落地.如 何写好程序等问题.专栏的目的是希望能抛出一些观点,并引发大家思考,如果你有感触或者新的感悟,欢迎联系专栏负责人Gary(微信 greenguolei)深聊. 本文是漫谈架构专栏的第二篇,作者通过几个例子,讨论了一下认识概念的误区,如何有效的去认识概念,明白概念背后的含义,以及如何利用对概念的理解,快速

【Hinton实验室探访】Capsule后最新研究,用软决策树更好理解DNN分类

2012年,Geoffrey Hinton改变了机器"看"世界的方式. Hinton和他的两名学生Alex Krizhevsky和Ilya Sutskever一起,发表论文<ImageNet Classification with Deep Convolutional Neural Networks>,提出了深度卷积神经网络模型AlexNet,在当年的ImageNet大规模图像识别竞赛中获得冠军,将Top-1和Top-5误差分别降到了37.5%和17.0%,比此前的技术要好

PHP-Socket-阻塞与非阻塞,同步与异步概念的理解

1. 概念理解        在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步:       所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回.也就是必须一件一件事做,等前一件做完了才能做下一件事.       例如普通B/S模式(同步):提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事   异步:       异步的概念和同步相对.当一个异步过程调用发出后,调用

JavaScript回调(callback)函数概念自我理解及示例

此文适合JavaScript入门级选手阅读,高手就可以飘过了. 先扯点闲话.在中国,有这么一种现象:不管什么词或者概念,总会有些 人把这些东西解释的神乎其神,貌似搞得别人听不懂就觉得自己很厉害的样子.其实不知道有多2.我个人比较崇尚简洁明了.什么词,什么概念,如果你能用简短 的一两句话让大家听明白,这才是本事.好了,闲话不扯了,进入正题. 在JavaScript里什么叫Callback"回调函数",用我的话来讲就是把方法b当做一个参数传递个方法a,当方法a执行完后执行另外一个指定函数(

java入门概念个人理解之package与import浅析_java

由于近来学习java,遇到了一些在c++上没有的概念,将它记录下,以自己复习使用,如有不理解妥之处,望大家批评指导.资料均由网上经过自己整合理解而来,如有侵权请通知我将起删除即可. 我就以package与import开始吧. package的作用其实就是c++的namespace的作用,防止名字相同的类产生冲突,只是实现的机制不一样,java编译器在编译时,直接根据package 指定的信息直接将生成的class文件生成到对应目录下.如package aaa.bbb.ccc 编译器就将该.jav