我正在尝试创建一个 SplitButton 控件,该控件使用 ContextMenu 来显示其项目。 SplitButton 当前来自 Button 。我有一个 PART_DropDownInitiator ,它是用户点击的小图标,用于显示 SplitButton ContextMenu 以显示其项目。

问题是我正在尝试在 SplitButton Template 或样式中设置默认的 ContextMenu ,这样一来控件的用户不必自己动手。起初我想我只是让用户在xaml中设置 SplitButton.ContextMenu.Items 属性,但这似乎不可能。现在我想将 Items ItemsSource 属性添加到 SplitButton ContextMenu > SplitButton 的模板可以绑定到它。用户不仅需要在xaml中设置 Items ItemsSource 属性,或者在 SplitButton 中设置代码隐藏......

但是, Items ItemsSource 属性似乎都来自 ItemsControl ,这是一个问题,因为 SplitButton 已经从 Button 派生。所以我不知道该怎么做......有什么想法吗?

有帮助吗?

解决方案

如果你要继承路由,你应该从HeaderedItemsControl派生,你的默认ControlTemplate将Header内容作为Button的内容。

因此,您还可以获得Items / ItemsSource - 您唯一需要开发的是ControlTemplate。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top