C#WPF上下文菜单:菜单项对单击没有反应
我有一个C#WPF上下文菜单:菜单项对单击没有反应,c#,wpf,C#,Wpf,我有一个C#WPF应用程序。在XAML中,我有一个Datagrid,我在其中添加了一个ContextMenu,如下所示: <DataGrid.ContextMenu> <ContextMenu ItemsSource="{Binding Categories}"> <ContextMenu.ItemTemplate> <DataTemplate> <MenuItem Header="{Binding N
C#
WPF应用程序
。在XAML
中,我有一个Datagrid
,我在其中添加了一个ContextMenu
,如下所示:
<DataGrid.ContextMenu>
<ContextMenu ItemsSource="{Binding Categories}">
<ContextMenu.ItemTemplate>
<DataTemplate>
<MenuItem Header="{Binding Name}" Background="{Binding Brush}" Click="MenuItem_Click" Tag="{Binding Id}" />
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
</DataGrid.ContextMenu>
使用应用程序时,它看起来如下所示:
问题是,当单击框的颜色部分(我猜它是某些内部网格的一部分)时,会触发MenuItem\u Click
事件。但是,当我单击菜单项的灰色部分时,不会触发click事件。有人知道它为什么会这样吗?有没有办法解决这个问题
此外,如果能够给整个菜单项上色,而不仅仅是里面的小盒子,那就太好了。有办法吗?您可以尝试减少上下文菜单的填充,以及菜单项的边框厚度:
<DataGrid.ContextMenu>
<ContextMenu ItemsSource="{Binding Categories}" Padding="0">
<ContextMenu.ItemTemplate>
<DataTemplate>
<MenuItem Header="{Binding Name}" Background="{Binding Brush}" Click="MenuItem_Click" Tag="{Binding Id}"
BorderThickness="0"/>
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
</DataGrid.ContextMenu>
或
灰色部分本身就是上下文菜单。您已经将Click事件处理程序绑定到菜单项,因此当您单击菜单项时,它会起作用。当您单击关联菜单时,它不能工作。您可以尝试删除菜单项之间的边距以删除灰色区域。
<DataGrid.ContextMenu>
<ContextMenu ItemsSource="{Binding Categories}" Padding="0">
<ContextMenu.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding Name}" />
<Setter Property="Tag" Value="{Binding Id}" />
<Setter Property="Background" Value="{Binding Brush}" />
<EventSetter Event="Click" Handler="MenuItem_Click" />
</Style>
</ContextMenu.ItemContainerStyle>
</ContextMenu>
</DataGrid.ContextMenu>