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