2009-06-17 19 views
1

我正嘗試創建一個SplitButton控件,該控件使用ContextMenu來顯示其項目。 SplitButton目前衍生自Button。我有一個PART_DropDownInitiator這是用戶點擊的小圖標,用於調出的ContextMenu以顯示其項目。創建一個也包含Items和ItemsSource的Button的自定義控件?

問題是,我試圖在SplitButtonTemplate或樣式中設置默認的ContextMenu,這樣控件的用戶就不必自己做。起初,我想我只需要用戶在xaml中設置SplitButton.ContextMenu.Items屬性,但這似乎不可行。現在我想添加一個ItemsItemsSource屬性到SplitButton 的的模板中的ContextMenu可以綁定到它。用戶應該比只需要在設置上SplitButton XAML或隱藏代碼ItemsItemsSource財產......

但是,無論是ItemsItemsSource性質似乎從ItemsControl發起,這是因爲有問題SplitButton已經從Button派生。所以我不知道該怎麼做......任何想法?

回答

1

如果你要繼承的路線,你應該從HeaderedItemsControl派生,而不是默認的ControlTemplate將Header內容作爲Button的內容。

因此,您還會得到Items/ItemsSource - 您唯一需要開發的就是您的ControlTemplate。

最後,考慮將菜單部分實現爲Popup而不是ContextMenu。 ContextMenu是一個特定用途的UI元素(通常用右鍵單擊)。有關更多信息,請參閱aero.normalcolor.xaml中ComboBox的默認ControlTemplate。

相關問題