/// <summary>
        ///   This is the method that responds to the MouseEvent event.
        /// </summary>
        /// <param name="e">Event arguments</param>
        protected override void OnMouseMove(MouseEventArgs e)
        {
            RibbonGallery gallery = RibbonGallery;

            if (gallery != null && gallery.DidMouseMove(e))
            {
                // Parent constrols such as RibbonComboBox don't want this item to acquire focus

                if (gallery.ShouldGalleryItemsAcquireFocus)
                {
                    Focus();
                }

                try
                {
                    gallery.HasHighlightChangedViaMouse = true;
                    IsHighlighted = true;
                }
                finally
                {
                    gallery.HasHighlightChangedViaMouse = false;
                }
                e.Handled = true;
            }

            base.OnMouseMove(e);
        }
        /// <summary>
        ///     An event reporting the mouse left this element.
        /// </summary>
        /// <param name="e">Event arguments</param>
        protected override void OnMouseLeave(MouseEventArgs e)
        {
            RibbonGallery gallery = RibbonGallery;

            if (gallery != null && gallery.DidMouseMove(e))
            {
                try
                {
                    gallery.HasHighlightChangedViaMouse = true;
                    IsHighlighted = false;
                }
                finally
                {
                    gallery.HasHighlightChangedViaMouse = false;
                }
                IsPressed = false;
                e.Handled = true;
            }

            base.OnMouseLeave(e);
        }