0
我目前在C#WPF中有一個ContextMenu,它顯示一個MenuItem。這個ContextMenu然後被TrayIcon使用。在上下文菜單中取消選中項目
// 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」菜單項 - 否則會檢查該項目,但該窗口不會打開(如果用戶想要重新啓用窗口,這會讓用戶感到困惑)。
有關如何處理這個問題的任何想法?我需要基本取消選中菜單項。我可以解構菜單並對其進行重構,但這似乎浪費時間。
一如既往,在此先感謝您的任何幫助。
我誤解了ContextMenu.Items.Add()函數的工作方式。出於某種原因,我相信它實際上會創建一個MenuItem的副本 - 不會引用現有的對象。 – BSchlinker 2011-05-09 05:33:22