void IDropTarget.ShowFeedback()
        {
            if (feedback == null)
            {
                feedback = DragDropUtility.DropHorizontalFeedback;
            }

            HtmlRect outer = treeView.Element.GetBoundingClientRect();
            Rect     rc    = null;

            if (hit != null)
            {
                rc = hit.Rect.Intersect(outer);
                if (2 * (clientY - hit.Rect.Top) >= hit.Rect.Height)
                {
                    rc.Top = rc.Bottom;
                }
            }
            else
            {
                rc = new Rect()
                {
                    Left = outer.Left, Top = outer.Bottom - 1, Width = outer.Right - outer.Top, Height = 1
                };
                if (outer.Height / treeView.RowHeight < treeView.NodeSource.Count)
                {
                    rc.Top = treeView.RowHeight * (int)treeView.NodeSource.Count;
                }
            }

            feedback.Show(rc);
        }
 void IDisposable.Dispose()
 {
     feedback = feedback.EnsureDispose();
 }