If a Popup is opened in a PointerEntered event and closed by a PointerExited event, then when the mouse is moved quickly across the screen it is possible for the Popup to open after the mouse has already moved away from it. In this situation, the Popup will not close.
When the mouse is moved slowly over the PopupTile controls, the popup opens and closes as expected. Only one popup is open at any time.
But if the mouse is moved rapidly, then the popups start to open without closing. The PointerExited event is never raised. The popups close when the mouse is moved back over them and then away again.
Expected behavior
The popup should open and acquire pointer state synchronously. In the example control, the popup should always start in the "pointer over" state and should raise PointerExited if the pointer is no longer over it when it opens.
Screenshots
Desktop (please complete the following information):
If a
Popup
is opened in aPointerEntered
event and closed by aPointerExited
event, then when the mouse is moved quickly across the screen it is possible for thePopup
to open after the mouse has already moved away from it. In this situation, thePopup
will not close.To Reproduce Create this UserControl:
Now insert this grid into a window:
When the mouse is moved slowly over the
PopupTile
controls, the popup opens and closes as expected. Only one popup is open at any time.But if the mouse is moved rapidly, then the popups start to open without closing. The
PointerExited
event is never raised. The popups close when the mouse is moved back over them and then away again.Expected behavior The popup should open and acquire pointer state synchronously. In the example control, the popup should always start in the "pointer over" state and should raise
PointerExited
if the pointer is no longer over it when it opens.Screenshots
Desktop (please complete the following information):