2010-07-25 57 views
1

我正在創建從ComboBox繼承的自定義WPF控件類。由於我只是定義了行爲,現有的ComboBox模板對我來說很好,我不想創建一整套模板來支持不同的主題。有沒有辦法指定我的控件使用現有的組合框模板?重用自定義WPF控件中的現有模板

回答

1

給你控制一個默認樣式,並設置BasedOn到組合框的默認樣式:

<Style TargetType="{x:Type local:CustomControl1}" 
     BasedOn="{StaticResource {x:Type ComboBox}}"> 
</Style> 

這將繼承從ComboBox默認樣式模板二傳手。

+0

雖然托馬斯的回答也將工作對於這種情況,有其自身的優勢,利用這種方法將允許您稍後重寫您的自定義控件的默認樣式與ComboBox的獨立樣式,而無需返回並調整控件的代碼。 – 2010-07-26 00:38:54

1

你不必做任何事情。如果你的控制從ComboBox繼承,你不會覆蓋DefaultStyleKey屬性,它會使用相同的樣式ComboBox(因此同一模板)

+0

我一開始就試過這個,但是嚮導的默認行爲是重寫這個鍵,並且我得到了一個無形的控制。這是一個很好的解決方案,它可以工作,所以我給了它一個投票,但我已經接受了另一個,因爲它使您有選擇地覆蓋和擴展現有模板,這很好。 – Shane 2010-07-26 14:40:10