Exemplo n.º 1
0
        private void UpdateView(DragEventArgs e)
        {
            e.Handled = true;

            var hitPoint = GetCenterAdjustedPosition(HitTestReferenceElement.TrueCursorPosition());

            if (_ScrollHelper != null)
            {
                _ScrollHelper.DoScroll(hitPoint);
            }

            bool canDrop = false;

            if (_NewPageHelper != null)
            {
                canDrop = _NewPageHelper.UpdateVisual(hitPoint, _ScrollHelper.IsScrolling);
            }
            canDrop = canDrop | _TileDropHelper.UpdateView(hitPoint, canDrop | _ScrollHelper.IsScrolling);

            UpdateAdornerPosition(e);

            if (hitPoint.Y >= 0 && hitPoint.Y <= _MetroControlPanel.ActualHeight)
            {
                e.Effects = DragDropEffects.Move;
            }
            else
            {
                e.Effects = DragDropEffects.None;
            }
        }
Exemplo n.º 2
0
        private void HandleDrop(object sender, DragEventArgs e)
        {
            e.Handled = true;

            var hitPoint = GetCenterAdjustedPosition(HitTestReferenceElement.TrueCursorPosition());

            if (_ScrollHelper != null)
            {
                _ScrollHelper.Stop();
            }

            bool dropped = false;

            if (_NewPageHelper != null)
            {
                dropped = _NewPageHelper.HandleDropped(hitPoint);
            }
            dropped |= _TileDropHelper.HandleDropped(hitPoint);

            if (dropped)
            {
                if (_DragSourcePage.Items.Count == 0)
                {
                    _MetroControl.RemoveContainer(_DragSourcePage);
                }
            }
        }
Exemplo n.º 3
0
 private Point TranslateHitPoint(Point hitPoint, FrameworkElement relativeTo)
 {
     if (relativeTo == HitTestReferenceElement)
     {
         return(hitPoint);
     }
     return(HitTestReferenceElement.TranslatePoint(hitPoint, relativeTo));
 }