在初步了解了XAML之后,我们来稍微的了解一些枯燥的知识,我保证这一个系列的课程里只有这一节课是这样的。主要是这些概念太重要,后面的大量知识需要它们做前导。这里的详细内容可以可以看3月份我和任旻在微软的webcast里的讲的一次课程,不过那次的课程效果不好,网络出了些问题,但是讲的深一些,我这次给msdn录的课程可能会浅一些。

第一个概念是树,看着这个词,我估计大家要晕倒一片。大家不要紧张,这个不是数据结构中的树,但是却很像。在WPF中的树主要是指逻辑树和可视树。

在WPF中,用户界面由一个对象树构建而成,这棵树叫作逻辑树。几乎WPF的每一方面(属性、事件、资源等)都有与逻辑树相关联的行为。我们看一段代码,

<DockPanel
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">

<!--implicit: <DockPanel.Children>-->
  <ListBox DockPanel.Dock="Top">
    <!--implicit: <ListBox.Items>-->
    <ListItem>
      <Paragraph>Dog</Paragraph>
    </ListItem>
    <ListItem>
      <Paragraph>Cat</Paragraph>
    </ListItem>
    <ListItem>
      <Paragraph>Fish</Paragraph>
    </ListItem>
    <!--implicit: </ListBox.Items>-->
  </ListBox>
  <Button Height="20" Width="100" DockPanel.Dock="Top">Buy a Pet</Button>

<!--implicit: </DockPanel.Children>-->
</DockPanel>

我们一边学习新知识一边练习代码阅读。这里首先出现了一个新的东西<!--implicit: <DockPanel.Children>--> 这个感叹号在很多地方都出现了,这个是表示注释的意思。我们现在回到代码的开头,这里我们可以看到DockPanel,它和StackPanl很相近,都是一种布局方式,StackPanl是水平或者垂直方向排列。而DockPanel是向上下左右四个方向停靠。过了命名空间和注释,我们看到一句代码<ListBox DockPanel.Dock="Top">,这个是指ListBox这个控件向上停靠。大家把“Top”修改成“Left”“Right”“Bottom”看看。发现ListBox 在整个窗体的各个方向进行停靠。接下来我们继续看代码,又添加了三个列表元素。接着添加了一个按钮。

我们对照着代码旁边的逻辑树图看看,在树的最上面是一个DockPanel,下面一层是ListBox和Button,最下面一层是三个ListBox的子元素。看了一个简单的逻辑树,接下来我们看一个复杂的逻辑图,这个是上一节课中那段代码的逻辑树图。大家看看,在树的最上面是window,接下来是就是按照布局结构和控件的层级来的。

转载于:https://www.cnblogs.com/zouyuntao/archive/2009/04/10/1433172.html

贫民窟里的WPF系列讲座(二)相关推荐

  1. 贫民窟里的WPF系列讲座(一)

    最近讲了一套完整的WPF课程,感觉教学效果还很不错.我准备给MSDN录15期左右的事情,这几篇文章是配合视频一起来看的.我相信大家都是很喜欢研究新技术的,但是研究新技术的时候会遇到很多困难,譬如书籍的 ...

  2. 张悟本健康知识系列讲座(二)

    上课我们讲了心脑血管包括高血压.高血脂等,这节课我们接着往下讲,西医说人得病有三个原因?第一个是食源性就是吃出来的,第二个是医源性,什么意思呢?就是误诊的,没有诊出这个病,世界卫生组织给医疗行业定了一 ...

  3. WPF系列(二)数据转换

    WPF中的依赖属性绑定对象时,如果数据类型不一致,会发生数据转换,比如int 转string 等,这些WPF会帮我们做好,但是如果是比较负杂的类型,比如bool类型转换成 Visibility,就不行 ...

  4. 066-JAVA项目实训:仿QQ即时通讯软件系列讲座一(需求分析)

    [上一讲]065-UDP网络通讯使用DatagramSocket及DatagramPacket实现多人聊天案例讲解_CSDN专家-赖老师(软件之家)的博客-CSDN博客 [下一讲]067-仿QQ即时通 ...

  5. WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现...

    原文:WPF技术触屏上的应用系列(二): 嵌入百度地图.API调用及结合本地数据库在地图上进行自定义标点的实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系 ...

  6. WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现

    去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统,54寸大屏电脑电视一体机.要求有很炫的展示效果,要有一定的视觉冲击力,可触控操作.当然满足客户的要求也可以有 ...

  7. Reflex WMS入门系列十二:Reflex里的Location

    Reflex WMS入门系列十二:Reflex里的Location 玩过SAP系统里的人都知道,在SAP系统里库存管理分为IM Level和WM Level.IM Level的仓库,在SAP里被定义为 ...

  8. SEO站内优化系列讲座(八)——

    SEO站内优化系列讲座(八)-- 一.面包屑路径 合理的颜色有利于用户点击: 现在的位置:首页的目标关键词 > 分集剧情介绍 > 新拿什么拯救你我的爱人电视剧(对) 现在的位置:放网站的名 ...

  9. ZT:“再看OA”系列讲座之三:反思档案管理

    "再看OA"系列讲座之三:反思档案管理[ZT] 国务院信息化办公室电子政务信息安全体系研究组副组长 陈拂晓 2002-8-14 中国计算机用户 自1990年以来,采用计算机管理档案 ...

最新文章

  1. 统计简单学_正态分布
  2. mysql router docker_Docker镜像瘦身 - SegmentFault 思否
  3. Error: SyntaxError: DOM Exception 12 ...
  4. redis学习之redis基本数据类型以及Jedis
  5. html自动轮播中间放大,html5+css如何实现中间大两头小的轮播效果
  6. SQL 语法参考手册
  7. miniui页面移动的时候透明_【H5】316 移动端H5跳坑指南
  8. 如何在excel 单元格中增加换行
  9. linux根目录缩减非lvm,vmware下linux非LVM管理的根目录扩容经历
  10. 电子工程师不得不读的十大经典书籍
  11. localhost拒绝访问的解决方法
  12. max3232ese_【MAX3232ESE+ PDF数据手册】_中文资料_引脚图及功能_(美信 Maxim Integrated)-采芯网...
  13. 这 4 个远程桌面开源了!
  14. 百度飞桨“万有引力”2022首站落地苏州,全面启动中小企业赋能计划
  15. CentOS 6各版本镜像合集下载
  16. CWnd::FromHandle与CWnd::FromHandlePermanent有什么区别
  17. 用python写一个NC(八)
  18. mysql韩语排序_MySQL汉字字段按拼音排序
  19. 声纹识别之I-Vector
  20. linux之database(数据库)一

热门文章

  1. Pytorch 计算误判率,计算准确率,计算召回率
  2. python爬虫初步学习
  3. 最新uboot的Kbuild系统 3 .config的生成
  4. CPU制作工艺中的14nm工艺
  5. FlexRay关注事项2_网络总线资源分配问题
  6. wpf 音频波形图_wpf波形图 - IT屋-程序员软件开发技术分享社区
  7. 三招轻松辨别微博含水量!提升广告主投放效果
  8. 20192132055 李欣桐第二次作业
  9. 风靡全球的社交媒体二维码在国内正式上线啦!
  10. 你真的了解什么是Beta测试?完整测试指南