右键单击网格内容之外时,如何在网格上的 ListBoxItem 模板上显示上下文菜单?

How to show context menu on a ListBoxItem template on a grid when right-clicking outside the contents of it?

你好,

我有一个 ListBox.ItemTemplate(显然包含一个 DataTemplate),其中包含一个 Grid,它本身包含一个 Label

Grid 有一个 Grid.ContextMenu。问题是 ContextMenu 仅在我右键单击 Label 时显示。不在外面。

如果您不理解(但我相信您理解了 ;)!)

这是代码:

<ListBox.ItemTemplate>
   <DataTemplate>
      <Grid Margin="0,0,0,1">
         <Grid.ContextMenu>
            <ContextMenu>
               <MenuItem CommandParameter="{Binding}" Command="{Binding Source={x:Reference window}, Path=DataContext.DeleteCommand}" Header="Supprimer">
                  <MenuItem.Icon>
                     <Image Source="/SchoolTools.Teacher;component/Images/DeleteIcon.png" />
                  </MenuItem.Icon>
               </MenuItem>
            </ContextMenu>
         </Grid.ContextMenu>
         <Label Content="{Binding ClassYear}" Padding="0" 
          HorizontalAlignment="Center" />
      </Grid>
   </DataTemplate>
</ListBox.ItemTemplate>

谢谢!

将标签的 Horizo​​ntalAlignment 更改为 Stretch,使其填满整个网格单元格。