Создайте макет Canvas с высотой и шириной, занимающими размер окна вашего приложения, установите его видимость для скрытия, а затем добавьте контекстное меню как дочерний элемент к холсту. Теперь вы можете обработать событие MouseLeftButtonDown canvas и установить в нем contextMenu.IsOpen = false. Теперь этот холст занимает всю рабочую область вашего приложения, поэтому, когда бы вы ни щелкнули правой кнопкой мыши, вы могли открыть контекстное меню, а где бы пользователь ни щелкнул левой кнопкой мыши, контекстное меню можно закрыть.
Это способ, которым всплывающие окна, контекстные меню и т. Д. Работают в окнах и веб-приложениях.
Код выглядит примерно так:
Canvas canvas = new Canvas();
canvas.Height = Application.Height; //replace with ur app height
canvas.Width = Application.Width; //replace with ur app width
canvas.Child(ContextMenu);
canvas.MouseLeftButtonDown += (s,e) => { contextMenu.IsOpen = false};
Это не фактический код, используйте его в качестве справки.