コード例 #1
0
        /// <summary>
        /// Removes the <see cref="DragAdorner"/>.
        /// </summary>
        private void RemoveDragAdorner()
        {
            if (_dragAdorner != null)
            {
                var adornerLayer = AdornerLayer.GetAdornerLayer(_dragAdorner.AdornedElement);
                adornerLayer?.Remove(_dragAdorner);

                _dragAdorner = null;
            }
        }
コード例 #2
0
        // Creates or updates the DragAdorner.
        private void UpdateDragAdorner(Point mousePosition)
        {
            // Create new adorner if necessary.
            if (_dragAdorner == null && _dropCommandParameter.Data != null)
            {
                _dragAdorner = new DragAdorner(AssociatedObject)
                {
                    Data = _dropCommandParameter.Data,
                    DataTemplate = DragTemplate,
                };

                var adornerLayer = AdornerLayer.GetAdornerLayer(AssociatedObject);
                adornerLayer?.Add(_dragAdorner);
            }

            // Update the position of the adorner.
            UpdateDragAdornerPosition(mousePosition);

            // Update data.
            // (The drop commands can change it to alter the visualization while dropping.)
            if (_dragAdorner != null)
                _dragAdorner.Data = _dropCommandParameter.Data;
        }