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

时间:2018-03-18 09:22:52

标签: wpf button menuitem routedevent

Button内有MenuItem.Header,如下所示:

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

enter image description here

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

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

(该用途主要用于造型目的,我有一个按钮样式,我想将其用作MenuItem

1 个答案:

答案 0 :(得分:2)

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;
}