一、系统控件分类
- 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控件。
由于这些控件都派生自最底层的基类,因此实现的功能都非常的基础。