0

我有一个这样的Button内部MenuItem.Header

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

在此处输入图像描述

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

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

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

4

1 回答 1

2

AButton不知道如何扩展 a 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;
}
于 2018-03-19T15:13:20.807 回答