#WPF

Опубликовано: 30 Июль 2026
на канале: Mini Project Application's
455
13

LinkedIn
  / sandeep-jadhav-67294b78  

public partial class MainWindow : Window
{
public Dictionary < long, Stroke > inkcanvasStrokes;
public Stroke currentStroke;

public MainWindow()
{
InitializeComponent();
inkcanvas1.EditingMode = InkCanvasEditingMode.None;
inkcanvasStrokes = new Dictionary < long, Stroke > ();
InitializeTouchEvents();
}
public void InitializeTouchEvents()
{
inkcanvas1.PreviewTouchDown += Inkcanvas1_PreviewTouchDown;
inkcanvas1.PreviewTouchMove += Inkcanvas1_PreviewTouchMove;
inkcanvas1.PreviewTouchUp += Inkcanvas1_PreviewTouchUp;
}
private void Inkcanvas1_PreviewTouchDown(object sender, TouchEventArgs e)
{
TouchPoint touchPoint = e.GetTouchPoint(inkcanvas1);
Point point = touchPoint.Position;
currentStroke = new Stroke(new StylusPointCollection(new List < Point > { point }), inkcanvas1.DefaultDrawingAttributes.Clone());
if (!inkcanvasStrokes.ContainsKey(touchPoint.TouchDevice.Id))
{
inkcanvasStrokes.Add(touchPoint.TouchDevice.Id, currentStroke);
inkcanvas1.Strokes.Add(currentStroke);
}
}
private void Inkcanvas1_PreviewTouchMove(object sender, TouchEventArgs e)
{
TouchPoint touchPoint = e.GetTouchPoint(inkcanvas1);
Point point = touchPoint.Position;

if (inkcanvasStrokes.ContainsKey(touchPoint.TouchDevice.Id))
{
var stroke = inkcanvasStrokes[touchPoint.TouchDevice.Id];
stroke.StylusPoints.Add(new StylusPoint(point.X, point.Y));
}
}
private void Inkcanvas1_PreviewTouchUp(object sender, TouchEventArgs e)
{
TouchPoint touchPoint = e.GetTouchPoint(inkcanvas1);
if (inkcanvasStrokes.ContainsKey(touchPoint.TouchDevice.Id))
inkcanvasStrokes.Remove(touchPoint.TouchDevice.Id);
}
}