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);
            }
        }