У меня есть приложение WPF, которое работает в системном трее. Я пытаюсь создать контекстное меню, которое появляется, когда вы щелкаете правой кнопкой мыши по значку в лотке. Вот XAML:Контекстное меню с правой кнопкой мыши в системном лотке
<Window.Resources>
<ContextMenu x:Key="NotifierContextMenu" Placement="MousePoint">
<MenuItem Header="Exit" Click="Menu_Exit"/>
</ContextMenu>
</Window.Resources>
А вот код-за:
void NotifyIcon_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Right)
{
var menu = this.FindResource("NotifierContextMenu") as ContextMenu;
menu.IsOpen = true;
}
}
protected void Menu_Exit(object sender, RoutedEventArgs e)
{
NotifyIcon.Visible = false;
Application.Current.Shutdown();
}
Проблема, что у меня в том, что при нажатии правой кнопкой мыши на значок, он выдает ошибку, NotifierContextMenu не может быть найден. Что мне не хватает?
Да, они в одном классе. Я запускаю Parallel.Foreach код в этом приложении, когда я прокомментирую, что это работает нормально. Любая идея, как заставить его работать? – Justin
Любая вероятность того, что ForEach вызывает проблемы в этом потоке? Можете ли вы попытаться создать BackgroundWorker и поместить в него материал Parallel.ForEach, чтобы переместить его на другой поток? Я никогда не использовал Parallel.ForEach, но это связано с связью потоков в MSDN. Просто мысль. – CodeWarrior
Это исправлено, спасибо! – Justin