WPF控件创作模型的选择
WPF 提供了三种用于创建控件的常规模型,每一种都提供了一组不同的功能和灵活性级别。开始编写新控件之前,应先了解这些模型,这一点至关重要。
1。从 UserControl 派生
从 UserControl 派生的优点
2。从 Control 派生
从 Control 派生的优点
3。从 FrameworkElement 派生
从 UserControl 和 Control 派生的控件依赖于组合现有元素。有时自定义组件需要的精确控制超过简单的元素组合可提供的功能。对于这些情况,使组件基于 FrameworkElement 才是正确的选择。生成基于 FrameworkElement 的组件有两种标准方法:直接呈现和自定义元素组合。直接呈现涉及的操作包括:重写 FrameworkElement 的 OnRender 方法,并提供显式定义组件视觉效果的 DrawingContext 操作。此方法由 Image 和 Border 使用。自定义元素组合涉及的操作包括实例化和使用 Visual 类型的对象组合组件的外观。有关示例,请参见使用 DrawingVisual 对象。Track 是 WPF 中使用自定义元素组合的控件示例。也可以在同一控件中混合使用直接呈现和自定义元素组合。
从 FrameworkElement 派生的优点
如果以下一种或多种情况适用,请考虑从 FrameworkElement 派生:
-
想要对控件的外观进行精确控制,而不仅仅是简单的元素组合提供的内容。
-
想要通过定义自己的呈现逻辑来定义控件的外观。
-
想要以一种 UserControl 和 Control 之外的新颖方式组合现有元素。
-------------------------------------以上内容来源于MSDN-----------------------------------------------------