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; } }
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); } } }
private Point TranslateHitPoint(Point hitPoint, FrameworkElement relativeTo) { if (relativeTo == HitTestReferenceElement) { return(hitPoint); } return(HitTestReferenceElement.TranslatePoint(hitPoint, relativeTo)); }