Button
内有MenuItem.Header
,如下所示:
<Menu>
<MenuItem>
<MenuItem.Header>
<Button>Hello</Button>
</MenuItem.Header>
<MenuItem Header="SubItem1"/>
<MenuItem Header="SubItem2"/>
</MenuItem>
</Menu>
如果我点击MenuItem
外的Button
,则会打开子菜单。但是,如果我点击Button
子菜单将无法打开。我相信这是因为点击的事件没有传递给MenuItem
。我如何解决它?
简而言之 - 我希望在点击Button
时打开子菜单。
(该用途主要用于造型目的,我有一个按钮样式,我想将其用作MenuItem
)
答案 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;
}