取消选中上下文菜单中的项目

时间:2011-05-09 04:14:06

标签: c# contextmenu menuitem trayicon

我目前在C#WPF中有一个ContextMenu,显示一个MenuItem。然后由TrayIcon使用此ContextMenu。

// menu initialization
private static System.Windows.Controls.ContextMenu trayMenu = new System.Windows.Controls.ContextMenu();

// menu item initialization
private static System.Windows.Controls.MenuItem displayOnScreenControls = new System.Windows.Controls.MenuItem();
displayOnScreenControls.Header = "Display presenter controls";
displayOnScreenControls.IsCheckable = true;
displayOnScreenControls.Checked += new RoutedEventHandler(displayOnScreenControls_Checked);
displayOnScreenControls.Unchecked += new RoutedEventHandler(displayOnScreenControls_Unchecked);

// add icons to the tray menu
trayMenu.Items.Add(displayOnScreenControls);

“displayOnScreenControls”项目是可检查的。当用户选中此选项并满足某些条件时,将出现一个控制窗口。

如果用户选择关闭此窗口,则表示他们不再希望打开控制窗口。为了保持一致性,我需要取消选中“displayOnScreenControls”菜单项 - 否则将检查该项目,但窗口将不会打开(如果用户想要重新启用窗口等,这会让用户感到困惑)。

有关如何处理此问题的任何想法?我需要基本上取消选中menuitem。我可以解构菜单并重新构建它,但这似乎是浪费时间。

与往常一样,提前感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

所以你只想在Window关闭时以编程方式取消选中菜单项?您需要做的就是设置IsChecked

displayOnScreenControls.IsChecked = false;

将它放在你的Window.Closed事件处理程序中,你应该很好。