Ejemplo n.º 1
0
        static void CreatePreviewAdorner(object sender, DragEventArgs e)
        {
            // Set the Drag source UI
            IDropTargetAdvisor adv = GetDropTargetAdvisor(sender as FrameworkElement);

            adv.TargetUI = sender as UIElement;

            // get the data
            // get the UIFeedback
            UIFeedback = adv.GetVisualFeedback(e.Data);
            DoubleAnimation anim = new DoubleAnimation(0.75, new Duration(TimeSpan.FromMilliseconds(500)));

            anim.From           = 0.25;
            anim.AutoReverse    = true;
            anim.RepeatBehavior = RepeatBehavior.Forever;
            UIFeedback.BeginAnimation(UIElement.OpacityProperty, anim);
            UIFeedback.IsHitTestVisible = false;

            // add it to the adornment layer
            AdornerLayer layer = AdornerLayer.GetAdornerLayer(sender as UIElement);

            Overlay = new DropPreviewAdorner(UIFeedback, sender as UIElement, layer);
            layer.Add(Overlay);
            Overlay.Location = GetOverlaypoint(sender, e);
        }
Ejemplo n.º 2
0
        private static void DropTarget_PreviewDragEnter(object sender, DragEventArgs e)
        {
            // Get the current drop target advisor
            CurrentDropTargetAdvisor = GetDropTargetAdvisor(sender as DependencyObject);

            if (UpdateEffects(sender, e) == false)
            {
                return;
            }

            // Setup the preview Adorner
            UIElement feedbackUI = CurrentDropTargetAdvisor.GetVisualFeedback(e.Data);

            _offsetPoint = CurrentDropTargetAdvisor.ApplyMouseOffset
                                        ? (Point)e.Data.GetData(DragOffsetFormat)
                                        :
                           new Point();
            CreatePreviewAdorner(sender as UIElement, feedbackUI);

            e.Handled = true;
        }