Ejemplo n.º 1
0
        private static bool SetMousePosition(object sender, FrameworkElement attachedToEl)
        {
            FrameworkElement draggedEl = (FrameworkElement)sender;

            FrameworkElement containerEl = GetContainerElement(attachedToEl);

            Point mousePositionWithRespectToContainerElement =
                Mouse.GetPosition(containerEl);

            SetMousePositionWithinContainerElement
            (
                attachedToEl,
                mousePositionWithRespectToContainerElement);

            bool isDragAbove = containerEl.Contains(mousePositionWithRespectToContainerElement);

            SetIsDragAbove(attachedToEl, isDragAbove);

            bool result =
                SetWhetherCanDrop(draggedEl, attachedToEl, mousePositionWithRespectToContainerElement);

            if (result)
            {
                IDropPositionChooser dropPositonChooser = GetTheDropPositionChooser(attachedToEl);

                if (dropPositonChooser != null)
                {
                    Point dropPoint =
                        dropPositonChooser.GetPositionWithinDropDontainer
                        (
                            draggedEl,
                            containerEl,
                            mousePositionWithRespectToContainerElement);

                    SetDropPosition(attachedToEl, dropPoint);
                }
            }

            return(result);
        }
Ejemplo n.º 2
0
 public static void SetTheDropPositionChooser(DependencyObject obj, IDropPositionChooser value)
 {
     obj.SetValue(TheDropPositionChooserProperty, value);
 }