private static void ShowMouseOverAdorner_Element_PreviewMouseMove(object sender, MouseEventArgs e)
        {
            var Element = sender as FrameworkElement;
            if (Element == null)
                return;

            var AdornerLayer = InitializeAdornerLayerCache(Element);
            if (AdornerLayer == null)
                return;

            var Adorner = GetMouseOverAdorner(Element);
            if (Adorner == null)
            {
                Adorner = new RectangleAdorner(Element)
                {
                    IsHitTestVisible = false,
                    Brush = GetMouseOverAdornerBrush(Element),
                    Pen = GetMouseOverAdornerPen(Element)
                };
                SetMouseOverAdorner(Element, Adorner);
            }

            if (Adorner.Parent != AdornerLayer)
                AdornerLayer.Add(Adorner);
        }
 private static void SetMouseOverAdorner(FrameworkElement element, RectangleAdorner value)
 {
     element.SetValue(MouseOverAdornerProperty, value);
 }