>> I have to leave it and enter it again so the normal process works. Why the first time it doesn't work but the second time ?
Because the MouseEnter event will not fire unless you first move the mouse pointer outside the button and then move it back inside the boundaries of the button. That's how the MouseEnter event works: https://msdn.microsoft.com/en-us/library/system.windows.input.mouse.mouseenter(v=vs.110).aspx.
Closing the ContextMenu will not cause the mouse pointer to leave the button.
If you need any further help on this then please upload a reproducable sample of your issue, including all necassary code to be able to reprocude the issue, to OneDrive and post the link to it here.
Please remember to mark helpful posts as answer to close the thread.