Gibt es eine Möglichkeit, ein Menüelement in WPF programmatisch zu schließen

8

Ich habe ein Menü in wpf, das ein Eingabefeld und eine Schaltfläche hat. Sobald der Benutzer auf die Schaltfläche klickt, muss ich das Menü schließen.

Gibt es eine Möglichkeit, dies zu tun?

%Vor%

Danke, Jon

    
Jon Kragh 16.09.2009, 08:06
quelle

3 Antworten

12

Erhalte die MenuItem und tue:

%Vor%

Einfach zu erreichen:

%Vor%

Code-Behind:

%Vor%     
Kent Boogaart 27.09.2011, 15:13
quelle
3

Ich finde, dass die Verwendung von IsSubmenuOpen den Fokus nicht korrekt aus dem Menü entfernt, das den MenuItem enthält (besonders wenn das Menü in einer ToolBar ist) - der oberste MenuItem bleibt Selected , obwohl das Menü ist "Geschlossen"). Ich finde das Senden eines MouseUp -Ereignisses an die MenuItem funktioniert besser (im Ereignishandler der Schaltfläche oder des verschachtelten Steuerelements, Click-Ereignis):

%Vor%     
Steve 26.10.2012 05:08
quelle
2

Steve danke für deine Lösung. Das ist eigentlich die richtige Antwort und schließlich etwas, das wirklich neben vielen schlechten Antworten über das Internet funktioniert. Ich habe eine kürzere (und sicherere) Lösung basierend auf Ihrem Verstärker. Da das direkte Parent (e.Parent) der Schaltfläche nicht immer MenuItem ist (aus der ursprünglichen Antwort, die StackPanel ist), wird Ihre Lösung nicht funktionieren. Setzen Sie einfach die Eigenschaft Name des MenuItem (Name="MyMenuItem") und haken Sie diesen Handler auf dem Button:

%Vor%     
Velibor 11.08.2016 00:11
quelle

Tags und Links