控件编程-系统控件的分类
1. 控件体系概览
- 规模:Windows 10 应用开发提供几十个系统内置控件。
- 核心基类:所有控件均派生自以下五个基类:
FrameworkElement、Panel、Control、ContentControl、ItemsControl。 - 继承关系:这五个基类自身存在严格的层级派生关系,构成了 XAML 控件体系的树状骨架。
2. 三大核心基础类解析
- 1. FrameworkElement 类(最底层通用基类)
- 上层继承:派生自
UIElement(UIElement封装了键盘、触摸等基础 UI 事件及可视外观基础)。 - 核心扩展:扩展了布局相关的方法与属性,并引入数据绑定支持。
- 定位:所有控件的终极基类。若自定义控件直接派生自它,仅具备最基础的共性特点。
- 上层继承:派生自
- 2. Panel 类(布局容器基类)
- 上层继承:派生自
FrameworkElement。 - 核心能力:为所有布局面板(如
Canvas、Grid、StackPanel)提供基类,负责测量和排列子对象(子控件的尺寸计算与位置排布)。
- 上层继承:派生自
- 3. Control 类(可交互控件基类)
- 上层继承:派生自
FrameworkElement。 - 核心机制:引入
ControlTemplate(控件模板)。外观由模板内多个元素组成,允许用户完全自定义/修改模板。 - 定位:派生自它的控件(如
Button)UI 显示极度灵活,可通过改模板彻底重塑外观。
- 上层继承:派生自
3. 两大功能扩展类解析
- 4. ContentControl 类(单项内容容器)
- 上层继承:派生自
Control。 - 最大特点:拥有
Content属性,用于承载单项内容。 - 灵活性:
Content可以是任意类型(如string、DateTime甚至嵌套UIElement控件,如Button内部放图片+文字)。
- 上层继承:派生自
- 5. ItemsControl 类(集合/列表控件基类)
- 上层继承:派生自
Control。 - 核心能力:呈现项的集合(列表控件,如
ListBox、ListView)。 - 显著属性:
ItemsSource,用于绑定外部对象集合(数据驱动 UI);也可直接通过Items存放固定项集。
- 上层继承:派生自