简介: 某些场景下,我们确实需要创建新的控件。此时,理解 WPF不同控件的创建方法就显得非常重要。 WPF 提供3个用于创建控件的方法,每个方法都提供不同的灵活度。
WPF控件可以通过数据模型(DataTemplate)、样式(Style)、控件模板(ControlTemplate)和触发器(Trigger)等机制减少创建新控件的需要。 但是,某些场景下,我们确实需要创建新的控件。此时,理解 WPF不同控件的创建方法就显得非常重要。 WPF 提供3个用于创建控件的方法,每个方法都提供不同的灵活度,下面分别进行介绍。
1 基于UserControl 创建
创建控件最简单一个方法就是基于UserControl 类进行继承。此时,我们可以将WPF中现有组件添加到 UserControl 画布上来,并将各组件进行命名,这样可以在后台进行组件访问和使用事件处理程序。 UserControl 可以利用丰富内容、样式和触发器的优点。 但是,继承自 UserControl的控件,将无法使用 DataTemplate 或 ControlTemplate 来自定义UI外观。
2 基于Control 创建
基于Control类创建自定义控件的方法 ,可以使用模板定义UI外观。而且可以将后台逻辑和前端样式展现上进行分离。 另外,这种方法创建的自定义控件,还支持使用命令和绑定来完成相关动作,实现类似事件的效果。最后,控件可以重新定义ControlTemplate和DataTemplate来自定义UI外观。控件支持不同的主题。
3 基于 FrameworkElement 创建
一般来说,基于 UserControl 或 Control 创建的自