Ich habe eine WPF-App, die in der Taskleiste ausgeführt wird. Ich versuche ein Kontextmenü zu erstellen, das angezeigt wird, wenn Sie mit der rechten Maustaste auf das Symbol in der Taskleiste klicken. Hier ist die XAML:Rechtsklick-Kontextmenü in der Taskleiste
<Window.Resources>
<ContextMenu x:Key="NotifierContextMenu" Placement="MousePoint">
<MenuItem Header="Exit" Click="Menu_Exit"/>
</ContextMenu>
</Window.Resources>
Und hier ist der Code-behind:
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();
}
Das Problem, das ich habe, ist, dass, wenn Sie mit der rechten Maustaste auf das Symbol, ein Fehler wirft, dass NotifierContextMenu kann nicht gefunden werden. Was vermisse ich?
Ja, sie sind in der gleichen Klasse. Ich führe Parallel.Foreach Code in dieser App, wenn ich das auskommen, funktioniert es gut. Irgendeine Idee, wie es funktioniert? – Justin
Jede Möglichkeit, dass das ForEach Probleme in diesem Thread verursacht? Können Sie versuchen, einen BackgroundWorker zu erstellen und die Parallel.ForEach-Inhalte in diese einzufügen, um sie auf einen anderen Thread zu verschieben? Ich habe nie Parallel.ForEach verwendet, aber es ist mit einem Haufen Threading in MSDN verwandt. Nur ein Gedanke. – CodeWarrior
Das hat es behoben, danke! – Justin