我正在尝试使用径向样式(每个项目的“饼图片段”)为触摸应用程序创建一个完全自定义的上下文菜单。我已经能够使用ItemsControl的基础创建一个。但是,当我尝试将其切换到ContextMenu的基础时,我无法摆脱项目列表中每个饼图切片的默认弹出窗口。
有没有办法覆盖默认的ContextMenu样式来摆脱这个项目列表功能?
编辑:这是我的问题的屏幕截图。两个示例之间的代码几乎完全相同,除了继承的类和它的显示方式(作为子项添加到Canvas而不是显示弹出窗口)
编辑2:我尝试覆盖默认样式,如下所示:
<ContextMenu.Style>
<Style TargetType="ContextMenu">
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ContextMenu">
<Canvas IsItemsHost="true" Height="100" Width="100" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ContextMenu.Style>
答案 0 :(得分:2)
如果您只想更改WPF控件的外观,只需更改其controltemplate即可。
以下是ContextMenu的默认值:http://msdn.microsoft.com/en-us/library/ms744758.aspx
并且不要忘记更新MenuItem controltemplate:http://msdn.microsoft.com/en-us/library/ms747082(v=vs.85).aspx
答案 1 :(得分:0)
我个人不知道如何覆盖或更改默认的contextmenu布局。 如果看起来没有正确的方法,我认为你应该使用Adorner类从sratch创建它,否则通过创建一个新的透明tomost窗口。 让我们了解您将选择的解决方案。
此致