【发布时间】:2013-07-15 18:23:42
【问题描述】:
我在 WPF 中有一个自定义按钮,出于样式原因,我想将其用作主菜单按钮。我正在尝试创建一个类似于Microsoft Office 2007 的菜单。我已经向按钮添加了菜单项,但是当我单击按钮时没有打开菜单。事实上,我收到一个编译器错误,提示 Content 已设置太多次。我想这可能与我的形象有关。我还需要在按钮中添加或更改哪些其他代码才能使其在单击时真正打开菜单且无错误?
这就是我现在按钮下的内容:
<!--- MAIN MENU BUTTON -->
<Button Width="50"
Height="50" HorizontalAlignment="Left" Margin="12,12,0,0" VerticalAlignment="Top">
<!--- MAIN MENU BUTTON IMAGE -->
<Button.Content>
<StackPanel Orientation="Horizontal">
<Image
Source="..."
Width="40"
Height="40" />
</StackPanel>
</Button.Content>
<!-- MENU COMMAND -->
<Menu>
<MenuItem x:Name="MainMenu">
<MenuItem Header="New" />
<MenuItem Header="Open" />
<MenuItem Header="Exit" Click="Exit_Click" />
</MenuItem>
</Menu>
</Button>
我读过一些关于绑定的例子,但我不确定如何在这个特定的实例中做到这一点。
谢谢。
【问题讨论】:
-
您确定不想要 MenuItem 吗? msdn.microsoft.com/en-us/library/…
-
是的,我确定。我知道如何使用这些。我希望我的按钮充当菜单项。编辑:我明白你的意思。我已将代码从
ContextMenu更改为MenuItem。我现在遇到的唯一问题是编译器错误,因为显然MenuItem不适用于<Button.ContextMenu> -
我改了代码,愚蠢的错误。
-
在您的情况下,
Menu超出了StackPanel,因此您会收到错误消息。在内容中,如果包含多个元素,则它们必须都在面板中(StackPanel、Grid等)。但是为什么我给你的答案不合适呢? -
好的,距离更近了一点。我从来没有说过不合适。我只是认为它与 ContextMenu 的关系比 MenuItems 多一点。看起来我不小心开始尝试设置 ContextMenu。
标签: wpf button drop-down-menu