private void ShowMenu(FrameworkElement menuParent, Menu menuToShow, bool hideOtherMenus)
        {
            if (hideOtherMenus)
                HideAllMenus();

            var menuParentPosition = menuParent.GetPosition(Application.Current.RootVisual);

            var adjustedPosition = new Point(menuParentPosition.X - 1, menuParentPosition.Y - 2);

            var pGrid = LayoutContext != null ? LayoutContext.FindElement<Grid>() : MenuLayer;

            ChangeLayoutHitTest(false);

            pGrid.Children.Add(_cover);

            _cover.Click += CoverClick;

            MenuLayer.Children.Add(menuToShow);

            menuToShow.AbsoluteTransformPositionTo(adjustedPosition, Application.Current.RootVisual);

            _hoverShow = true;

            if (_isWindowBaseMenu)
                AddProxyMenuUI(menuToShow);
        }