Ich habe ein Steuerelement, das ein Popup mit einigen WPF-Steuerelementen darin verwendet, und StaysOpen="True". Das Problem ist, wenn Sie auf das Popup klicken, wenn die Anwendung keinen Fokus hat, erhält die Anwendung keinen Fokus. Ich habe ein wenig Nachforschungen angestellt, und es scheint, als ob dies daran liegen könnte, dass Popups für Menüs gedacht sind, so dass sie nicht alle richtigen Windows Message Handler haben. Hier ist ein Barebone-Beispiel, um das Problem zu demonstrieren:
%Vor%Was ich in Schritt 4 erwarten würde, wäre, dass die Anwendung den Fokus erhält und die Listbox den neuen Eintrag auswählt.
Gibt es irgendwelche Problemumgehungen für dieses Problem oder etwas Offensichtliches, das mir fehlt? Ich versuche, den ganzen Popup-Code mit vollwertigen Fenstern neu zu schreiben und das Verhalten, das wir haben, wieder zu implementieren, aber das scheint wirklich kompliziert zu sein, nur um ein kleines Problem wie dieses zu beheben.
Wenn Sie MouseLeftButtonDown
event behandeln, können Sie Window.Activate()
method aufrufen. aber Sie sollten es für jedes Element schreiben - Popup
und für alle TextBlock
s.
Das Problem, das Sie haben können, ist, dass Sie unter Windows Maustasten austauschen können, wo links richtig wurde und umgekehrt (aber ich weiß nicht, wie das funktioniert), also müssen Sie MouseRightButtonDown
event behandeln .