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(); }