我正在尝试创建一个SplitButton
控件,该控件使用ContextMenu
来显示其项目。 SplitButton
目前来自Button
。我有PART_DropDownInitiator
这是用户点击的小图标,用于显示ContextMenu
SplitButton
以显示其项目。
问题在于我正在尝试在ContextMenu
的{{1}}或样式中设置默认SplitButton
,这样控件的用户就不必自己动手吧。起初我想我只是让用户在xaml中设置Template
属性,但这似乎不可能。现在,我想向SplitButton.ContextMenu.Items
添加Items
和ItemsSource
属性,SplitButton
模板中的ContextMenu
可以绑定到它。用户不仅需要在xaml中设置SplitButton
或Items
属性,还需要在ItemsSource
上设置代码隐藏...
但是,SplitButton
和Items
属性似乎都来自ItemsSource
,这是一个问题,因为ItemsControl
已经从SplitButton
派生。所以我不知道该怎么做......有什么想法吗?
答案 0 :(得分:1)
如果你要继承路由,你应该从HeaderedItemsControl派生,你的默认ControlTemplate将Header内容作为Button的内容。
因此,您还可以获得Items / ItemsSource - 您唯一需要开发的是ControlTemplate。
最后,考虑将菜单部分实现为Popup而不是ContextMenu。 ContextMenu是一个特定于目的的UI元素(通常用右键单击)。有关更多信息,请参阅aero.normalcolor.xaml中的ComboBox的默认ControlTemplate。