internal DropTargetAdorner CreateTest(Type type, UIElement adornedElement) { DropTargetAdorner result = DropTargetAdorner.Create(type, adornedElement); return(result); // TODO: add assertions to method DropTargetAdornerTest.CreateTest(Type, UIElement) }
private static void DragSourceOnQueryContinueDrag(object sender, QueryContinueDragEventArgs e) { if (e.Action == DragAction.Cancel || e.EscapePressed) { DragAdorner = null; EffectAdorner = null; DropTargetAdorner = null; Mouse.OverrideCursor = null; } }
private static void OnPreviewDrop(object sender, DragEventArgs e) { var dropInfo = new DropInfo(sender, e, _dragInfo, Format.Name); var dropHandler = GetDropHandler((UIElement)sender); DragAdorner = null; DropTargetAdorner = null; if (dropHandler != null) { dropHandler.Drop(dropInfo); } else { DefaultDropHandler.Drop(dropInfo); } e.Handled = true; }
private static void DropTargetOnDrop(object sender, DragEventArgs e, EventType eventType) { var dragInfo = m_DragInfo; var dropInfo = new DropInfo(sender, e, dragInfo, eventType); var dropHandler = TryGetDropHandler(dropInfo, sender as UIElement); var dragHandler = TryGetDragHandler(dragInfo, sender as UIElement); DragAdorner = null; EffectAdorner = null; DropTargetAdorner = null; dropHandler.DragOver(dropInfo); dropHandler.Drop(dropInfo); dragHandler.Dropped(dropInfo); e.Effects = dropInfo.Effects; e.Handled = !dropInfo.NotHandled; Mouse.OverrideCursor = null; }
private static void UpdateTargetDropAdorner(DependencyObject target, IDropInfo dropInfo) { UIElement adornedElement = target.GetVisualDescendent <ItemsPresenter>(); if (dropInfo.DropTargetAdorner == null) { DropTargetAdorner = null; } else if (!dropInfo.DropTargetAdorner.IsInstanceOfType(DropTargetAdorner)) { DropTargetAdorner = DropTargetAdorner.Create(dropInfo.DropTargetAdorner, adornedElement); } if (DropTargetAdorner == null) { return; } DropTargetAdorner.DropInfo = dropInfo; DropTargetAdorner.InvalidateVisual(); }
private static void DropTargetOnDragOver(object sender, DragEventArgs e, EventType eventType) { var elementPosition = e.GetPosition((IInputElement)sender); var dragInfo = m_DragInfo; var dropInfo = new DropInfo(sender, e, dragInfo, eventType); var dropHandler = TryGetDropHandler(dropInfo, sender as UIElement); var itemsControl = dropInfo.VisualTarget; dropHandler.DragOver(dropInfo); if (DragAdorner == null && dragInfo != null) { CreateDragAdorner(dropInfo); } // Moves DragAdorner following with mouse point DragAdorner?.Move(e.GetPosition(DragAdorner.AdornedElement), dragInfo != null ? GetDragMouseAnchorPoint(dragInfo.VisualSource) : default(Point), ref _adornerMousePosition, ref _adornerSize); Scroll(dropInfo, e); if (HitTestUtilities.HitTest4Type <ScrollBar>(sender, elementPosition) || HitTestUtilities.HitTest4GridViewColumnHeader(sender, elementPosition) || HitTestUtilities.HitTest4DataGridTypesOnDragOver(sender, elementPosition)) { e.Effects = DragDropEffects.None; e.Handled = true; return; } // If the target is an ItemsControl then update the drop target adorner. if (itemsControl != null) { // Display the adorner in the control's ItemsPresenter. If there is no // ItemsPresenter provided by the style, try getting hold of a // ScrollContentPresenter and using that. UIElement adornedElement = null; if (itemsControl is TabControl) { adornedElement = itemsControl.FindVisualChild <TabPanel>(); } else if (itemsControl is DataGrid || (itemsControl as ListView)?.View is GridView) { adornedElement = itemsControl.FindVisualChild <ScrollContentPresenter>() ?? itemsControl.FindVisualChild <ItemsPresenter>() ?? itemsControl; } else { adornedElement = itemsControl.FindVisualChild <ItemsPresenter>() ?? itemsControl.FindVisualChild <ScrollContentPresenter>() ?? itemsControl; } if (adornedElement != null) { if (dropInfo.DropTargetAdorner == null) { DropTargetAdorner = null; } else if (!dropInfo.DropTargetAdorner.IsInstanceOfType(DropTargetAdorner)) { DropTargetAdorner = DropTargetAdorner.Create(dropInfo.DropTargetAdorner, adornedElement, dropInfo); } var adorner = DropTargetAdorner; if (adorner != null) { var adornerBrush = GetDropTargetAdornerBrush(dropInfo.VisualTarget); if (adornerBrush != null) { adorner.Pen.Brush = adornerBrush; } adorner.DropInfo = dropInfo; adorner.InvalidateVisual(); } } } // Set the drag effect adorner if there is one if (dragInfo != null && (EffectAdorner == null || EffectAdorner.Effects != dropInfo.Effects)) { CreateEffectAdorner(dropInfo); } EffectAdorner?.Move(e.GetPosition(EffectAdorner.AdornedElement), default(Point), ref _effectAdornerMousePosition, ref _effectAdornerSize); e.Effects = dropInfo.Effects; e.Handled = !dropInfo.NotHandled; if (!dropInfo.IsSameDragDropContextAsSource) { e.Effects = DragDropEffects.None; } }
/// <summary> /// Raise when dragging item leave drop target control /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void DropTargetOnDragLeave(object sender, DragEventArgs e) { DragAdorner = null; EffectAdorner = null; DropTargetAdorner = null; }
public void DetachTest([PexAssumeNotNull] DropTargetAdorner target) { target.Detach(); // TODO: add assertions to method DropTargetAdornerTest.DetachTest(DropTargetAdorner) }
private static void OnPreviewDragLeave(object sender, DragEventArgs e) { DragAdorner = null; DropTargetAdorner = null; }