WPF中控件和布局.docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WPF中控件和布局

WPF控件和布局  WPF控件和布局,根据刘铁猛《深入浅出WPF》书籍讲解内容,主要记录控件和布局的原理,如果有不足的地方,请大牛们键盘下留情--轻喷!如果还算有用,请给点动力,支持一把!一、WPF里的控件1.1 控件的实质  我们先从UI上分析,UI的功能是让用户观察和操作数据,为了能显示数据和响应用户的操作通知程序(通过事件来通知,如何处理事件又是一系列的算法),所以控件就是显示数据和响应用户操作的UI元素,也即:控件就是数据和行为的载体。1.2 WPF中的一个重要概念--数据驱动UI  什么是数据驱动UI呢?我们知道传统的GUI界面都是由windows消息通过事件传递给程序,程序根据不同的操作来表达出不同的数据体现在UI界面上,这样数据在某种程度上来说,受到很大的限制。WPF中是数据驱动UI,数据是核心,处于主动的,UI从属于数据并表达数据,是被动的。因为以后的章节会重点介绍,在此不做过多的说明,只要记着,WPF数据第一,控件第二。1.3 WPF中控件的知多少  虽然控件没有数据重要,但是还是比较重要的,毕竟是门面啊,只是在数据面前,它比较有礼貌。控件有很多,但是如果仔细去分析,也是有规律可循的,根据其作用,我们可以把控件分为6类:布局控件:是可以容纳多个控件或者嵌套其他布局的控件,用于在UI上组织和排列控件。其父类为Panel。内容控件:只能容纳一个控件或者布局控件作为他的内容。所以经常借助布局控件来规划其内容。其父类为ContentControl。带标题内容控件:相当于一个内容控件,但是可以加一个标题,标题部分也可以容纳一个控件或者布局,其父类为HeaderedContentControl。条目控件:可以显示一列数据,一般情况下,是数据的类型是相同的。其共同的基类为ItemsControl。带标题的条目控件:和上面的带标题内容控件类同,其基类为HeaderdeItemsControl。特殊内容控件:这类控件比较独立,但也比较常用,如TextBox,TextBlock,Image等(由于其常用性和相对比较简单,本篇笔记不做说明)。上面的控件的派生关系如图1:图1二、各类控件模型详解2.1 WPF中的内容模型    为了理解各个控件的模型,还是先了解一下WPF中的内容模型。在上述各类控件里,至少可以容纳一个内容,主要原因是由于每个控件对象都会有一个重要又不常写出来的属性--Content Property(有Content,Child,Items,Children几个属性,如Grid可以容纳多个控件,用的是Children)。内容模型就是每一族的控件都含有一个或者多个元素作为其内容(其下面的元素可能是其他控件)。为什么可以不常写出来呢?先让我们看下面两段代码:XAML CodeWindow x:Class=Chapter_03.MainWindow xmlns=/winfx/2006/xaml/presentationxmlns:x=/winfx/2006/xaml Title=内容属性测试 Height=350 Width=525 Grid Grid.Children Button Content=1 Margin=120,146,0,146HorizontalAlignment=Left Width=82 / Button Content=2 x:Name=btn2 Margin=0,146,142,145HorizontalAlignment=Right Width=82 / /Grid.Children /Grid/WindowXAMLWindow x:Class=Chapter_03.MainWindow xmlns=/winfx/2006/xaml/presentationxmlns:x=/winfx/2006/xaml Title=内容属性测试 Height=350 Width=525 Grid Button Content=1 Margin=120,146,0,146HorizontalAlignment=Left Width=82 / Button Content=2 x:Name=btn2 Margin=0,146,142,145HorizontalAlignment=Right Width=82 / /Grid/Window运行两段代码效果一样。充分说明了重要而有不常见的原因。因为省略的省时,而且简洁明了。所以多数引用时都省去了。2.2ContentControl族  先说一下其特点:他们内容属性的名称

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档