2009-11-24 74 views
1

我期待擴展第三方控件,它是一個組合框(所以它不是標準的Silverlight控件,但對於這個問題應該不重要)。爲此,我添加了一個新的模板控件到我的控件項目中,然後我將新控件從ComboBox而不是Control繼承。在generic.xaml文件中爲我創建了一個樣式,所以我刪除了插入的默認邊框內容,然後爲PopupTemplate添加一個屬性設置器。擴展Silverlight控件中的模板

我的問題是,當這樣做時,組合框沒有(明顯)在silverlight應用程序中呈現。然而,在我的分機的構造函數,如果我註釋掉線

this.DefaultStyleKey = typeof(MyComboBox); 

,並把PopupTemplate XAML位主Silverlight頁面,它能正確呈現。我想彈出模板在控件庫中聲明,但這是否意味着我還必須定義常規模板屬性?我是否錯誤地認爲我沒有明確指定的東西應該從基本控件繼承?

回答

1

控件只能有一個默認樣式。您需要將基本控件的整個默認樣式複製到您的新的MyComboBox的Generic.Xaml中,然後相應地進行調整。

+0

是的,我不得不復制基本控件的整個樣式 - 但我能夠把所有這些都放到一個單獨的xaml資源字典中,專用於我的控件,然後將它連接回到generic.xaml * ResourceDictionary.MergedDictionaries *引用我的單獨文件。 – slugster 2010-02-15 10:23:17