在WPF中需要自定義控件,首要要選擇需要繼承的基類
這是常用的最低級的基類。通常,只有當希望重寫OnRender()方法並使用DrawingContext從頭繪制內容時,才會繼承該類。
當從頭開始創建控件時,這是最常用的起點。該類是所有用戶交互小組件的基類。Control類添加了用於設置背景、前景、字體和內容對齊方式的屬性。控件類還為自身設置了Tab順序(通過IsTabStop屬性),並且引入 了鼠標雙擊功能(MouseDoubleClick和PreviewMouseDoubleClick)。但最重要的是,Control類定義了Template屬性。
這是能夠顯示任意單一內容的控件的基類。顯示的內容可以是元素或結合使用模版的自定義對象(內容通過Content屬性設置,並且可以通過ContentTemplate屬性提供可靠的模板)
這是可使用設計視圖進行配置的內容控件。盡管用戶控件和普通的控件是不同的,但當希望在多個窗口中快速重用用戶界面中的不變模塊時(而不是創建真正的能在不同應用程序之間轉移的獨立控件),通過就使用該基類
ItemsControl是封裝列表控件的基類,但不支持選擇,而Selector類是支持選擇的控件的更具體類。創建自定義控件時不經常使用這些類,可以使用ListBox,ListView,TreeView等控件的DataTemplate來實現
該類是具有邏輯控件的基類。布局控件能夠包含多個子元素,並根據特定的布局語義安排這些子元素。通常,面板提供了用於設置子元素的附加屬性,配置如何安排子元素
提供在單個子元素(如 Border 或 Viewbox)上或周圍應用效果的元素的基類。
元素和控件基類繼承關系圖