C#WPF 控件

一、控件(元素)分类
注:以开发工具Visual Studio 2015为例
1.布局控件:是可以容纳多个控件或者嵌套其他布局的控件,用于在UI上组织和
排列控件。Grid(网格标签)、StackPanel(栈式面板)、DockPanel(停靠面板)等控件都属此类,它们拥有共同的父类为Panel(布局)。

(1)、因为顶级元素中只能有一个子元素,但是如果布局的页面需要多个控件的时候就要用到“布局控件”。
(2)、有些控件的内容是一个集合,如StackPanel的内容属性是Children、ListBox的内容
属性是Items,为这类控件添加内容时一样可以省略内容属性的标签。以StackPanel为例,
当为一个StackPanel添加三个TextBox和一个Button时,完整的语法应该是这样:
在这里插入图片描述
2.内容控件:只能容纳一个控件或者布局控件作为他的内容。Window、Button等
控件属于此类,因为只能容纳一个控件作为其内容,所以经常借助布局控件来
规划其内容。它们的共同父类是ContentControl(内容控件)。

(1)、控件是内存中的对象,控件的内容也是内存中的对象。控件通过自己的某个属性引
用着作为其内容的对象,这个属性称为内容属性(Content Property)。“内容属性”是个
统称,具体到每种控件上,内容属性都有自己确切的名字——有的直接就叫Content带Content一般都是内容控件,有叫Child;有些控件的内容可以是集合,其内容属性有叫Items或Children的。
(2)、在XAML里我们就应该能够使用Attribute=Value或者属性标签的形式来为内容赋值。比如想把字符串“OK”作为内容赋值给一个Button,下面两种写法都是正确的。
(3)、内容属性的优化之前与简化写法,控件的内容就应该是标签的内容、子级控件就应该是标签的子级元素(简称标签的元素)。标签的内容是夹在起始标签和结束标签间的代码,因此,上面的代码也可以写成这样: 原始–>简化–>再简化。
(4)、逻辑树(LoicalTree)因为是树形跟子集的一个集合,所以必须加上子集“Content”但是通过简化之后可以直接省略。
在这里插入图片描述
(5)、可以把控件想象成一个容器,容器里装的东西就是它的内容。控件的内容可以直接
是数据,也可以是控件。当控件的内容还是控件的时候就形成了控件的嵌套。我们把被
嵌套的控件称为子级控件。

(6)、允许控件嵌套,所以WPF的UI会形成一个树形结构。如果不考虑控件内部的组成结构,只观察由控件组成的“树”,那么这棵树为逻辑树(LoicalTree);控件本身就是一颗树,如果连控件本身的树也考虑在内,则这棵比逻辑树更“繁茂”的树称
为可视元素树(Visual Tree) 控件与控件之间嵌套形成层级关系,层级关系形似“树”。
在这里插入图片描述
(7)、ContentControl族元素的特点如下: 均派生自ContentControl类、它们都是控件(Control)、内容属性的名称为Content、只能由单一元素充当其内容。
例:Button控件属于这一族Button的内容是一个静态文本,第二个Button的内容是一张图片:Orientation="

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值