private static void ElementPreviewQueryContinueDrag(object sender, QueryContinueDragEventArgs e) { if (!e.EscapePressed) { return; } ((DependencyObject)sender).SetValue(Advent.Common.UI.DragDrop.IsDropOverPropertyKey, (object)false); DataObjectExtensions.DragLeave(); Advent.Common.UI.DragDrop.dragEnterOriginalSource = (object)null; }
private static void ElementPreviewDragLeave(object sender, DragEventArgs e) { UIElement uiElement = (UIElement)sender; uiElement.SetValue(Advent.Common.UI.DragDrop.IsDropOverPropertyKey, (object)false); POINT lpPoint; NativeMethods.GetCursorPos(out lpPoint); HitTestResult hitTestResult = VisualTreeHelper.HitTest((Visual)uiElement, uiElement.PointFromScreen(new Point((double)lpPoint.X, (double)lpPoint.Y))); if (hitTestResult == null || hitTestResult.VisualHit == null || hitTestResult.VisualHit != sender && !((Visual)sender).IsAncestorOf(hitTestResult.VisualHit)) { DataObjectExtensions.DragLeave(e.Data); } Advent.Common.UI.DragDrop.dragEnterOriginalSource = (object)null; }