Esempio n. 1
0
        private void OnDragInitialize(object sender, DragInitializeEventArgs e)
        {
            Control source    = sender as Control;
            Panel   context   = DragManager.DragContext;
            Point   dragStart = DragManager.DragStartPosition;

            e.Effects = DragDropEffects.All;
            Point mousePos = e.GetPosition(context);
            Point itemPos  = source.TranslatePoint(new Point(), source);
            Point offset   = new Point(mousePos.X - itemPos.X, mousePos.Y - itemPos.Y);

            e.DragVisualSize   = new Size(source.ActualWidth, source.ActualHeight);
            e.DragVisualOffset = offset;
            e.Data             = DragDataManager.GenerateDataObject(source);
        }
Esempio n. 2
0
 private void AssociateObject_DragEnter(object sender, DragEventArgs e)
 {
     if (_dragVisual == null)
     {
         Panel source = sender as Panel;
         //FrameworkElement dragVisual = null;
         Point   dragStart = DragManager.DragStartPosition;
         Control dragItem  = GetDragItemControl(source, dragStart);
         Point   itemPos   = dragItem.TranslatePoint(new Point(), source);
         if (DragVisualTemplate == null)
         {
             DragVisualTemplate = GetDefaultDataTemplate();
         }
         Point position = e.GetPosition(source);
         Point offset   = new Point(dragStart.X - itemPos.X, dragStart.Y - itemPos.Y);
         Size  size     = new Size(dragItem.ActualWidth, dragItem.ActualHeight);
         IList data     = DragDataManager.GetData(e.Data);
         _dragVisual = new DragVisual(data, source, DragVisualTemplate, offset, size);
         //if (dragItem.Parent is ItemsControl)
         //{
         //    ItemsControl parent = dragItem.Parent as ItemsControl;
         //    DataTemplate template = parent.ItemTemplate;
         //    if (template == null)
         //    {
         //        DragVisualTemplate = GetDefaultDataTemplate();
         //    }
         //    else
         //    {
         //        DragVisualTemplate = template;
         //    }
         //    Point position = e.GetPosition(source);
         //    Point offset = new Point(position.X - itemPos.X, position.Y - itemPos.Y);
         //    Size size = new Size(dragItem.ActualWidth, dragItem.ActualHeight);
         //    _dragVisual = new DragVisual(e.Data.GetData(DragDataManager.DataFormat) as IList, source, DragVisualTemplate, offset, size);
         //}
         //else
         //{
         //    dragVisual = CloneElement(dragItem);
         //    Point position = e.GetPosition(source);
         //    Point offset = new Point(position.X - itemPos.X, position.Y - itemPos.Y);
         //    Size size = new Size(dragItem.ActualWidth, dragItem.ActualHeight);
         //    _dragVisual = new DragVisual(e.Data.GetData(DragDataManager.DataFormat), source, offset, size, dragVisual);
         //}
     }
 }