2011-01-15 3 views
5

J'ai une application WPF qui s'exécute dans la barre d'état système. J'essaie de créer un menu contextuel qui apparaît lorsque vous faites un clic droit sur l'icône dans le bac. Voici le XAML:Menu contextuel du clic droit dans la barre d'état système

<Window.Resources> 
     <ContextMenu x:Key="NotifierContextMenu" Placement="MousePoint"> 
      <MenuItem Header="Exit" Click="Menu_Exit"/> 
     </ContextMenu> 
    </Window.Resources> 

Et voici le 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(); 
     } 

La question que je vais avoir est que lorsque vous faites un clic droit sur l'icône, il renvoie une erreur NotifierContextMenu est introuvable. Qu'est-ce que je rate?

Répondre

2

J'ai essayé moi-même sans problème. Votre gestionnaire d'événements pour MouseDown fait en fait partie de la même classe que NotifierContextMenu est créé correctement? Essayez peut-être de créer un petit code pour répertorier les ressources afin de déterminer si vous pouvez faire correspondre l'ensemble de ressources auquel il fait référence.

+0

Oui, ils sont dans la même classe. Je cours le code de Parallel.Foreach dans cette application, quand je commente que cela fonctionne bien. Une idée de comment le faire fonctionner? – Justin

+0

Une possibilité que le ForEach provoque des problèmes sur ce thread? Pouvez-vous essayer de créer un BackgroundWorker et mettre les éléments Parallel.ForEach dans celui-ci pour le déplacer sur un thread différent? Je n'ai jamais utilisé Parallel.ForEach, mais il est lié à un tas de choses de thread dans MSDN. Juste une pensée. – CodeWarrior

+0

Qui l'a réparé, merci! – Justin

Questions connexes