この質問をする前に、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 に変更しようとしましたが、変更はありません。何かご意見は?ばかげた明らかな何かが欠けていると確信していますが、検索で役立つものは何も見つかりません。
前もって感謝します!