コード例 #1
0
        void AssociatedObject_DragOver(object sender, DragEventArgs e)
        {
            var       update          = false;
            var       isAboveElement  = false;
            UIElement droppedOverItem = null;

            try
            {
                e.Handled = true;
                if (_dataType == null)
                {
                    return;
                }
                if (!e.Data.GetDataPresent(_dataType))
                {
                    return;
                }
                SetDragDropEffects(e);
                if (_insertAdornerManager == null)
                {
                    return;
                }
                var dropContainer = sender as DataGrid;
                if (dropContainer == null)
                {
                    return;
                }
                droppedOverItem = UIHelper.GetUIElement(dropContainer, e.GetPosition(dropContainer));
                if (droppedOverItem == null)
                {
                    return;
                }
                isAboveElement = UIHelper.IsPositionAboveElement(droppedOverItem, e.GetPosition(droppedOverItem));
                update         = true;
            }
            finally
            {
                if (_insertAdornerManager != null)
                {
                    if (update)
                    {
                        _insertAdornerManager.Update(droppedOverItem, isAboveElement);
                    }
                    else
                    {
                        _insertAdornerManager.Clear();
                    }
                }
            }
        }
コード例 #2
0
 private void AtDragOver(object sender, DragEventArgs e)
 {
     if (_dataType != null)
     {
         if (e.Data.GetDataPresent(_dataType))
         {
             SetDragDropEffects(e);
             if (_insertAdornerManager != null)
             {
                 var dropContainer   = (ItemsControl)sender;
                 var droppedOverItem = UIHelper.GetUIElement(dropContainer, e.GetPosition(dropContainer));
                 var isAboveElement  = UIHelper.IsPositionAboveElement(droppedOverItem, e.GetPosition(droppedOverItem));
                 _insertAdornerManager.Update(droppedOverItem, isAboveElement);
             }
         }
     }
     e.Handled = true;
 }