Tag Archives: PointerPressed

WPF Drawing Application

The following is a XAML page that allows the user to draw on it. This was written and tested under a Windows 10 desktop application, but should work for WPF. Here’s the XAML:

                <Canvas PointerPressed="Canvas_PointerPressed" PointerMoved="Canvas_PointerMoved"
                        Background="Orange" Name="Canvas" />

The background is a different colour to identify the canvas.

There’s the code to allow drawing:

        Path _currentPath;

        private void Canvas_PointerPressed(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
            _currentPath = new Path
                Data = new PathGeometry
                    Figures = { new PathFigure
                        StartPoint = e.GetCurrentPoint((UIElement)sender).Position,
                        Segments = { new PolyLineSegment() }
                Stroke = new SolidColorBrush(Colors.Black),
                StrokeThickness = 5


        private void Canvas_PointerMoved(object sender, PointerRoutedEventArgs e)
            if (_currentPath == null) return;

            var pls = (PolyLineSegment)((PathGeometry)_currentPath.Data).Figures.Last().Segments.Last();

        private void Canvas_PointerReleased(object sender, PointerRoutedEventArgs e)
            _currentPath = null;

As you can see, it doesn’t do anything for my drawing ability:


It’s all the code behind and, while I typically shy away from this, it seems to fit well for an application such as this (as the drawing relates more to the view than to anything else).