MenuItemをプログラムで表示/非表示にする必要がありますが、これを行うための最良の方法は何ですか?
11862 次
2 に答える
5
MenuItemを追加するには、次の行に沿って何かが必要になります。
var menuItem = new MenuItem() { Header = "Menu Name", Name = "Identifier", IsCheckable = true, IsChecked = visible };
menuItem.Click += new RoutedEventHandler(contextMenu_onClick);
int position = contextMenu.Items.Add(menuItem);
(しかし、あなたはおそらくすでにこれを持っています)。
メニュー項目をプロパティに結び付ける方法が必要になりますが、アプリケーションが表示されない限り、最善の方法を提案することはできません。オブジェクトを格納するTagプロパティがあります。文字列を格納するUidプロパティ。文字列も格納するNameプロパティ。
その間:
menuItem.Visibility = Visibility.Visible;
と
menuItem.Visibility = Visibility.Collapsed;
アイテムの表示を切り替える必要があります。
編集:折りたたみを使用すると、メニュー項目が非表示になり、メニューのスペースが予約されなくなります。コンテキストメニューに空白スペースは必要ありません。(これについてはBotz3000に感謝します)
次に、プロパティ値が変更されたコードで、上記のリンケージを使用して表示/非表示にするメニュー項目を見つけます。アイテムを入手したら、その値を切り替えることができます。
menuItem.Visibility = menuItem.Visibility == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible;
于 2009-05-09T10:21:58.327 に答える
0
を非表示にしてもMenuItem
よろしいですか? WPF のコマンド フレームワークを使用して無効にする方が一般的です。
<MenuItem Header="_MenuName" Command="{x:Static local:MyCommands.SomeCommand}" />
...
<!-- In the menu item or any of its ancestors: -->
<SomeControl.CommandBindings>
<CommandBinding Command="{x:Static local:MyCommands.SomeCommand}" Executed="Save_Executed" CanExecute="Save_CanExecture" />
</SomeControl.CommandBindings>
WPF は のbool
結果を使用して のコマンドを現在実行できるSave_CanExecute
かどうかを判断し、それに応じMenuItem
て を有効/無効にしMenuItem
ます。
于 2011-07-29T19:06:02.877 に答える