Getting the Popup to Close When It Loses Focus

On a recent project, I spent (I kid you not) over three hours trying to get a stinking popup to close when I clicked somewhere else in the application.

 Figuring it was a focus issue, I tried the following triggers:

  • IsFocused
  • IsKeyboardFocused
  • IsKeyboardFocusWithin
  • IsMouseCapture
  • IsMouseCaptureWithin

All to no avail.

Turns out that the only thing I had to do was set the StaysOpen property of the Popup thus:

<Popup StaysOpen=”False>

Handy little property. I just wish that it was the default.

8 Comments

  1. K Hulme:

    thank you. you’ve just ended my 3 hours of mucking about with the same events!

  2. knvdss:

    Thank you very much. I just spent more than 3 hours on that, trying to handle all kinds of events in the world. Just found it. Thanks for sharing.

  3. Thameem:

    Thanks for sharing you saved my time.. :) ..,

  4. martin:

    works fine if your popup has no buttons, textboxes etc (popup closes as soon as you focus the button).

  5. purav:

    Saved my time. Thanks!

  6. sker:

    Well, I’ve been working with StaysOpen=”False” all along, and suddenly I started to experience this same behavior. I’m at over 3 hours with this problem and I can’t figure it out. I’ll just keep searching and searching until I grow old and die.

  7. Gobi:

    hi Matthias Shapiro,

    Nice :-) thank u very much for sharing such a wonderful tips..

  8. Vu Minh Khue:

    Another way to do it is that you set the popup focus to true first:
    1) popup.Focus();
    2) popup.LostFocus += popup_OnLostFocus

Leave a comment