引言
WPF中微软提供了一些基本的控件,但是工作中这些基础的控件往往不能满足我们的需求,这个时候我们就需要根据实际的需求去开发自己的控件,但要注意不是所有功能不满足的情况都需要通过自定义控件来实现。实际上一旦用到自定义控件,说明WPF提供的Style,Datatemplate,ControlTemplate的特性已不能满足我们的需求啦。
自定义控件简介
继承的父类型 | 优点 | 缺点 |
UserControl | 和创建普通的WPF界面一样简单,可以直接使用Events 无需支持复杂的用户自定义 | 只能使用已有的控件 |
Control | 用户能够通过ControlTemplate自定一外观 控件能够支持不同的主题(Theme) 通过Commands和Binding代替Events确保UI和逻辑(Logic)分离,并且避免使用直接引用ControlTemplate中UI元素 | 需要实现支持复杂的用户自定义 |
FrameworkElement | 比前两者更精细的控制控件的外观 可以通过自定渲染逻辑(Render)控件的外观。 |
自定控件的基本步骤
总结
参考
Writing a Reusable Custom Control in WPF
Creating Customized UserControls (Deriving from ContentControl) in WPF 4