在提出这个问题之前,我花了很多时间浏览 StackOverflow 和 Google,但找不到任何非常有用的东西。我正在寻找有关如何从已编译的 Xaml 文件加载菜单并将其附加到菜单控件的指南。我是WPF新手,所以请多多包涵。
在我的页面中,我有以下 Xaml:
<Menu ItemsSource="{Binding MainMenu}">
</Menu>
我的视图模型类目前看起来像这样:
public class MainWindowViewModel : ViewModelBase
{
public ItemCollection MainMenu { get; set; }
public MainWindowViewModel()
{
Menu m = (Menu)Application.LoadComponent(new Uri("/Assets/Menus/StartupShellMenu.xaml", UriKind.Relative));
MainMenu = m.Items;
}
}
StartupShellMenu.xaml 文件如下所示:
<Menu xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<MenuItem Header="_File">
<MenuItem Header="_Open">
<MenuItem.Icon>
<Image Height="16" Width="16" Source="/Assets/Icons/Open.png"/>
</MenuItem.Icon>
</MenuItem>
<Separator/>
<MenuItem Header="E_xit"/>
</MenuItem>
</Menu>
我看到的是我的菜单项出现了,但是一旦我的鼠标移出菜单(我不必单击),菜单就会消失。此外,正常的键盘功能不起作用;按 Alt+F 不显示菜单,一旦显示,向上/向下键不起作用。我尝试将 MainMenu 属性的类型更改为 ObservableCollection,但没有任何变化。有什么想法吗?我确定我错过了一些明显的愚蠢的东西,但我在搜索中找不到任何有用的东西。
提前致谢!