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:
<Grid> <Border> <Canvas PointerPressed="Canvas_PointerPressed" PointerMoved="Canvas_PointerMoved" PointerReleased="Canvas_PointerReleased" Background="Orange" Name="Canvas" /> </Border> </Grid>
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 }; Canvas.Children.Add(_currentPath); } private void Canvas_PointerMoved(object sender, PointerRoutedEventArgs e) { if (_currentPath == null) return; var pls = (PolyLineSegment)((PathGeometry)_currentPath.Data).Figures.Last().Segments.Last(); pls.Points.Add(e.GetCurrentPoint((UIElement)sender).Position); } 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).