private void MainCanvas_PointerPressed(object sender, PointerRoutedEventArgs e) { if (!IsSelectable) { return; } MainCanvas.CapturePointer(e.Pointer); //Capture mouse to receive events even if the pointer is outside the control //Start dragging: _draggingState.StartDragging(UWPCanvasScoreRenderer.ConvertPoint(e.GetCurrentPoint(MainCanvas).Position)); //Check if element under cursor is staff element: FrameworkElement element = e.OriginalSource as FrameworkElement; if (element == null) { return; } if (!Renderer.OwnershipDictionary.ContainsKey(element)) { return; } //Set selected element: Select(Renderer.OwnershipDictionary[element]); }
private void MainCanvas_PointerMoved(object sender, PointerRoutedEventArgs e) { if (!IsSelectable) { return; } if (!_draggingState.IsDragging || _innerScore == null) { return; } Point currentPosition = e.GetCurrentPoint(MainCanvas).Position; var strategy = DraggingStrategy.For(SelectedElement); if (strategy != null) { strategy.Drag(Renderer, SelectedElement, _draggingState, UWPCanvasScoreRenderer.ConvertPoint(currentPosition)); } if (InvalidatingMode == InvalidatingModes.RedrawAllScore) { RenderOnCanvas(_innerScore); } }