0
我有一个ContextMenu
,其中我将一个子菜单绑定到一组自定义对象。在点击我发送一个命令绑定的对象作为参数:MenuItem可点击区域
<ContextMenu>
<MenuItem Header="Launch" ItemsSource="{Binding Profiles}">
<MenuItem.ItemTemplate>
<DataTemplate>
<MenuItem Command="{Binding DataContext.LaunchProfileCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ContextMenu}}}"
CommandParameter="{Binding}">
<MenuItem.Style>
<Style TargetType="MenuItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type MenuItem}">
<local:ProfileView IconSize="24" NameFontSize="10"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</MenuItem.Style>
</MenuItem>
</DataTemplate>
</MenuItem.ItemTemplate>
</MenuItem>
<MenuItem Header="Exit" Command="{Binding ExitCommand}"/>
</ContextMenu>
的问题是,不是MenuItem
(每在“配置文件”集合中的每个项目之一)的整个区域将触发绑定的命令。只有红色区域将触发命令:
我曾尝试没有成功改变MenuItem
风格的Padding
和Margin
性能。
我该如何实现能够点击MenuItem
中的任意位置并且能够触发绑定命令?
注意:红色区域对应我的自定义视图:ProfileView
。此视图的边距设置为0.
高亮停止在工作的MenuItems,它可以通过使用模板控件(Mahapps)引起的? – Sturm
@Sturm Right,控件模板处理它,并替换控件模板。我更新了我的版本以代替使用HeaderTemplate。如果你真的想完全消除现有的控件模板,你必须给你的新ControlTemplate一些触发器来处理突出显示等。 –
我可以通过添加样式触发器来解决这个问题:' '然后将我的控件放置在一个'Grid'中,背景为“{TemplateBinding Background}” –
Sturm