在WPF中自定义上下文菜单

Ala*_* Ho 9 wpf xaml contextmenu

我在这里有一个项目,我需要在我的WPF应用程序中自定义上下文菜单,其中一个按钮将放置在所有菜单项的底部.

但是,如果我要通过XAML添加按钮,它将在上下文菜单中显示为集合中的另一个项目,并且鼠标悬停突出显示将对其起作用.

我希望将上下文菜单调整为类似网格的样式,以便我可以自定义它下面的样式.

知道如何实现这一目标(最好是在XAML中)?

Ben*_*lde 25

在XAML中它实际上非常简单.只需在要为其设置上下文菜单的元素下定义它即可.

        <Border>
            <Border.ContextMenu>
                <ContextMenu>
                    <ContextMenu.Template>
                        <ControlTemplate>
                            <Grid>
                                <!--Put anything you want in here.-->
                            </Grid>
                        </ControlTemplate>
                    </ContextMenu.Template>
                </ContextMenu>
            </Border.ContextMenu>
        </Border>
Run Code Online (Sandbox Code Playgroud)


Chr*_*yks 6

对于菜单项样式和项目中的按钮,您可以使用以下代码:

注意 - 添加项目Header将保持相同MenuItem,但如果添加到MenuItem只有它将被视为新的MenuItem.

<ContextMenu>
    <ContextMenu.Items>
       <MenuItem>
          <MenuItem.Header>
             <StackPanel>
                <TextBlock Text="Item 1"/>
                <Button Content="Button 1" Margin="5"/>
             </StackPanel>
          </MenuItem.Header>
        </MenuItem>
        <MenuItem>
          <MenuItem.Header>
             <StackPanel>
                <TextBlock Text="Item 2"/>
                <Button Content="Button 2" Margin="5"/>
              </StackPanel>
           </MenuItem.Header>
          </MenuItem>
     </ContextMenu.Items>
 </ContextMenu>
Run Code Online (Sandbox Code Playgroud)

这将是结果ContextMenu:

在此输入图像描述

从那里,你可以风格的MenuItemButton等.

希望能帮助到你!