MenuItem 内的按钮不会打开 Sub-MenuItems

Button inside a MenuItem won't open Sub-MenuItems

我在 MenuItem.Header 中有一个 Button,如下所示:

<Menu>
    <MenuItem>
        <MenuItem.Header>
            <Button>Hello</Button>
        </MenuItem.Header>
        <MenuItem Header="SubItem1"/>
        <MenuItem Header="SubItem2"/>
    </MenuItem>
</Menu>

如果我单击 MenuItem 外部 Button,子菜单将打开。但是如果我点击 Button 子菜单将不会打开。我相信那是因为点击的事件没有传递给 MenuItem。我如何解决它?

简而言之 - 我希望在单击 Button 时打开子菜单。

(使用主要是为了样式,我有一个按钮样式,想把它当作一个MenuItem)

A Button 不知道如何展开 MenuItem 除非您通过编写一些代码告诉它如何展开:

<Menu>
    <MenuItem>
        <MenuItem.Header>
            <Button Click="Button_Click">Hello</Button>
        </MenuItem.Header>
        <MenuItem Header="SubItem1"/>
        <MenuItem Header="SubItem2"/>
    </MenuItem>
</Menu>

private void Button_Click(object sender, RoutedEventArgs e)
{
    Button btn = (Button)sender;
    MenuItem mi = btn.Parent as MenuItem;
    if (mi != null)
        mi.IsSubmenuOpen = !mi.IsSubmenuOpen;
}