WPF中微软提供了一些基本的控件,可是工做中这些基础的控件每每不能知足咱们的需求,这个时候咱们就须要根据实际的需求去开发本身的控件,但要注意不是全部功能不知足的状况都须要经过自定义控件来实现。实际上一旦用到自定义控件,说明WPF提供的Style,Datatemplate,ControlTemplate的特性已不能知足咱们的需求啦。html
继承的父类型 | 优势 | 缺点 |
UserControl | 和建立普通的WPF界面同样简单,能够直接使用Events 无需支持复杂的用户自定义 |
只能使用已有的控件 |
Control | 用户可以经过ControlTemplate自定一外观 控件可以支持不一样的主题(Theme) 经过Commands和Binding代替Events确保UI和逻辑(Logic)分离,而且避免使用直接引用ControlTemplate中UI元素 |
须要实现支持复杂的用户自定义 |
FrameworkElement | 比前二者更精细的控制控件的外观 能够经过自定渲染逻辑(Render)控件的外观。 |
编写一个“绑定友好”的WPF控件.net
控件创做概述code
Writing a Reusable Custom Control in WPFhtm
Creating Customized UserControls (Deriving from ContentControl) in WPF 4blog