1

我正在尝试创建一个SplitButton使用 aContextMenu来显示其项目的控件。目前SplitButton来自Button. 我有一个PART_DropDownInitiator小图标,用户单击它会调ContextMenuSplitButton以显示其项目。

问题是我试图在's或样式ContextMenu内设置默认值,这样控件的用户就不必自己做。起初我想我只是让用户在 xaml 中设置属性,但这似乎是不可能的。现在我想在's 的模板中添加一个和属性可以绑定到它。并且用户不应该只需要在 xaml 或代码隐藏中设置or属性...SplitButtonTemplateSplitButton.ContextMenu.ItemsItemsItemsSourceSplitButtonContextMenuSplitButtonItemsItemsSourceSplitButton

但是,ItemsItemsSource属性似乎都源自ItemsControl,这是一个问题,因为SplitButton已经源自Button。所以我不确定该怎么做......有什么想法吗?

4

1 回答 1

1

如果您要使用继承路线,则应改为从 HeaderedItemsControl 派生,您的默认 ControlTemplate 将 Header 内容作为 Button 的内容。

结果,您还获得了 Items/ItemsSource——您唯一需要开发的就是您的 ControlTemplate。

最后,考虑将菜单部分实现为 Popup 而不是 ContextMenu。ContextMenu 是一个特定用途的 UI 元素(通常通过右键单击来显示)。有关详细信息,请参阅 aero.normalcolor.xaml 中 ComboBox 的默认 ControlTemplate。

于 2009-06-17T16:26:35.647 回答