读书笔记1: uwp 控件结构分类

一、系统控件分类

  • FrameworkElement类
  • Panel类
  • Control类
  • ContentControl类
  • ItemsControl类

  1)FrameworkElement类

    派生自UIElement类, UIElement类是Windows 10 中具有可视外观并处理基本输入的大多数对象的基类,封装了键盘事件、触摸事件等一些基础的UI事件,但是UIElement类没有公开的构造函数,其作用就是作为FrameworkElement类的基类对UI的基础操作进行封装。

    FrameworkElement类扩展了UIElement并添加了布局的相关方法,属性和对数据绑定的支持。所以,所有的控件都是从FrameworkElement类派生而来。对于直接派生自FrameworkElement类的类来说,该控件仅仅拥有windows10 控件的最基本特性。

  2)Panel类

    派生自FrameworkElement类,为所有Panel元素提供基类。Windows 10 的应用程序中使用Panel元素测量和排列子对象。 Panel类封装的特性是布局控件的共性特点,由Panel类派生的控件都用于布局相关的控件。

  3)Control类

    Control类派生自FrameworkElement类,表示用户界面元素的基类,由ControlTemplate来定义其外观,ControlTemplate是控件的模板,由多个元素组成,可以直接由用户修改和定义。可以通过修改模板对其外观做较大的修改和定义。

  4)ContentControl类

    ContentControl派生自Control类,它具有Control类的所有功能特性,表示包含单项内容的控件。ConcentControl累的最大特点是content属性,可以是任何类型的变量,如string类型,DataTime类型甚至UIElement类型。当Content类型设置为UIElement时,ContentControl中将显示UIElement。为其他类型对象时,Contentcontrol对象将显示该对象的字符串表示形式。

  5)ItemsControl类

    ItemsControl类同样派生自Control类,表示一个可用于呈现项的集合的控件。

    ItemsControl类本身也是一个列表控件,可以直接在UI上作为列表控件来使用,可用于呈现一个固定的项集,或者用于显示从指向某个对象的数据绑定中获取的列表。ItemsControl类只封装了一些列表的基本特性,更高级的特性需要去使用其派生类。

  Windows10上的系统控件按照以上五种基类来划分,可分为以下5个类别:、

  1)面板控件

    这类控件由Panel类派生,包含Canvas、Grid、StackPanel和RelativePanel控件,这类控件常用于界面布局

  2)内容控件

    这类控件由ContentControl类派生,提供Content属性,用于定制控件的内容,包括Button、RadioButton、HyperlinkButton、CheckBox 和 ScrollViewer控件。

  3)列表控件

    这类控件由ItemsControl类派生,经常用于显示数据的集合,包括ListBox、Pivot、ListView 和 GridView控件。列表控件最重要的功能是展示列表的数据,其最主要的属性有:

      Items:用于生成控件内容的集合;

      ItemsPanel:定义了控制项的布局的面板;

      ItemsSource:生成ItemsControl的内容的集合;

      ItemsTemplate:用于显示每个项的DataTemplate

  4)普通控件

    这些控件直接派生与Control类,包含TextBox、PasswordBox、ProgressBar、ScrollBar、Slider等控件。

    这类控件的共性特点就是可以自定义或者修改器控件的数据模板。

  5)其他控件

    这类控件不由Control类派生,而是直接派生于FrameworkElement类,包括TextBlock、Border、Image、MediaElement 和 Popup控件。

    由于这些控件都派生自最底层的基类,因此实现的功能都非常的基础。

时间: 2024-12-26 18:22:27

读书笔记1: uwp 控件结构分类的相关文章

读书笔记-UIView与控件

1.UIView 在Objective-C中,NSObject是所有类的“根”类.同样,在UIKit框架中,也存在一个如此神奇的类UIView.从继承关系上看,UIView是所有视图的根. 1.1.UIView家族 UIView大体分为“控件”和“视图”两类,二者均继承于UIView. UIControl类是控件类,之所以这样称呼,是因为它们都有能力响应一些高级事件.UIControl类以外的视图没有这些高级事件. 1.2.应用界面的构建层次 下图(左)是一个应用界面的构建层次图,该应用有一个U

Java核心技术 卷1 读书笔记 (3 Java基本程序设计结构)

3.3 数据类型 Java是强类型语言,必须为每一个变量声明一种类型. 3.3.1 整型 Java 提供四种整型 int 4字节 short 2字节 long 8字节 byte 1字节 长整型(long)数值有一个后缀L(例如40000000000L),十六进制数值有一个前缀0x(例如0xCAFE),八进制数值有一个前缀0(例如010). 3.3.2 浮点型 Java提供两种浮点类型 float 4字节 double 8字节 float类型的数值有一个后缀F(例如3.42F),没有后缀F的浮点数

Atitit. .net c# web 跟客户端winform 的ui控件结构比较

Atitit. .net c# web 跟客户端winform 的ui控件结构比较 .net   4.5 webform Winform 命名空间 System.Web.UI.WebControls System.Windows.Forms 命名空间 继承层次结构 System.Object System.Web.UI.Control System.Web.UI.WebControls.WebControl System.Web.UI.WebControls.Button 继承层次结构 Syst

Windows Phone 7 LongListSelector控件实现分类列表和字母索引

在wp7手机里面的联系人列表和程序里面里面我们可以看到一个根据字母索引来定位联系人或者应用程序的控件,那么这个控件就是LongListSelector控件了. LongListSelector是一种比ListBox更加强大的列表控件,你可以根据你列表的信息来分类排列,根据类别快速定位到你选中的类别的列表下,在数据量很大的情况下这种分类的优势很明显.LongListSelector可以自定义列表头,列表尾.类表头.列别尾等的样式和数据,可以实现各种个性化的列表样式和不同的数据的展现方式.Windo

【ExtAspNet学习笔记】ExtAspNet控件库中常见问题

1.在Grid控件中添加CheckBoxField控件,选择一行时,如何获取选择的CheckBoxField所对应记录的唯一标识值? ●解决方案: 在前台Grid控件中, 添加“<ext:CheckBoxField ColumnId="myCheckBoxField" Width="60px" RenderAsStaticField="false"  DataField="MyCheckBox" CommandName=

Android UI控件的分类

大多数的界面控件都在android.view和android.widget包中,android.view.View为他们的父类,还有Dialog系列,android.app.Dialog为父类. Android的原生控件,一般是在res/layout下的xml文件中声明.然后在Activity通过使用super.setContentView(R.layout.某布局layout文件名)来加载layout.在Activity中获取控件的引用需要使用super.findViewById(R.id.控

swfit-学习笔记(基础控件)

最近在看swift,因为用任然是X-code开发,也不用再去熟悉另一种开发工具,感觉挺方便的,在敲OC的代码累了也可以试着学习一下,蛮不错的.代码之间都可以不用分号隔开了,挺不习惯的,不过用分号也不影响. 学习之余也简单做下学习笔记. 与学习OC一样个人还是喜欢从控件开始学习,比较直接,找到感觉.与OC一样,可以从xib上拖控件(使用与OC一样),也可手写创建. import UIKit class ViewController: UIViewController { override func

Android学习笔记:常用控件 RadioGroup和CheckBox

RadioGroup和CheckBox是android的常用控件,本文自做简单介绍和学习笔记,所以所用的控件样式选用android默认的样式. 先看下代码实现的效果图 图中,上面两个(male和female)为一个RadioGroup中的两个RadioButton,下面三个为CheckBox. 一个RadioGroup里面的内容只可单选,CheckBox可多选. 接下来是代码部分 布局文件代码activity_main.xml : <LinearLayout xmlns:android="

DEV 第三方控件报表分类汇总

最近这段时间难道空闲,于是打算做个报表功能,主要实现数据的分类汇总,以便不时之需.首先看看效果: 主要是根据工程类型这个字段进行分类,每个分类下对应的项目金额进行求和,当然,你也可以根据实际需求,进行求平均值等.如何做呢? 1.首先新建一个报表文件,在报表设计页面增加ReportHeader,用于显示你的报表名称,打印日期等信息 2.既然是分组,当然要添加分组控件,GroupHeader,用于显示每组的标题 3.增加数据绑定控件,我用的是DataTable 4.增加分组脚页GroupFooter