/// <summary>
 /// マウス左ボタンイベント離上イベント
 /// ゴースト削除
 /// </summary>
 /// <param name="sender">対象Control</param>
 /// <param name="e">マウスボタンイベントデータ</param>
 private static void OnPreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
 {
     if (_Adorner != null)
     {
         _Adorner.AdornedElement.ReleaseMouseCapture();
         _Adorner.Detach();
         _Adorner = null;
     }
 }
        /// <summary>
        /// マウス左ボタン押下イベント
        /// ゴーストを新規作成し表示
        /// </summary>
        /// <param name="sender">対象Control</param>
        /// <param name="e">マウスボタンイベントデータ</param>
        private static void OnPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (e.OriginalSource is FrameworkElement element)
            {
                var parent = FindAncestor <Panel>(element);

                if (parent != null &&
                    sender is FrameworkElement adornedElement)
                {
                    var point  = e.GetPosition(adornedElement);
                    var offset = new Point((-1) * point.X, (-1) * point.Y);

                    _Adorner = new GhostAdorner(parent, adornedElement, point, offset);

                    adornedElement.CaptureMouse();
                }
            }
        }