控件编程-系统控件的分类

控件编程-系统控件的分类

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 存放固定项集。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注