private async void InkCanvas_PointerPressed(object sender, PointerRoutedEventArgs e)
        {
            var position = e.GetCurrentPoint(_inkCanvas).Position;

            while (_analyzer.IsAnalyzing)
            {
                await Task.Delay(TimeSpan.FromMilliseconds(BusyWaitingTime));
            }

            if (_selectionRectangleService.ContainsPosition(position))
            {
                // Pressed on the selected rect, do nothing
                return;
            }

            selectedNode = _analyzer.FindHitNode(position);
            ShowOrHideSelection(selectedNode);
        }
        private void UnprocessedInput_PointerPressed(InkUnprocessedInput sender, PointerEventArgs args)
        {
            var position = args.CurrentPoint.Position;

            if (_selectionRectangleService.ContainsPosition(position))
            {
                // Pressed on the selected rect, do nothing
                return;
            }

            lasso = new Polyline()
            {
                Stroke          = new SolidColorBrush(Colors.Blue),
                StrokeThickness = 1,
                StrokeDashArray = new DoubleCollection()
                {
                    5, 2
                },
            };

            lasso.Points.Add(args.CurrentPoint.RawPosition);
            _selectionCanvas.Children.Add(lasso);
            enableLasso = true;
        }