私は一種の描画アプリを持っています。タッチ入力に線が引かれます。
void Touch_FrameReported(object sender, TouchFrameEventArgs e)
{
int pointsNumber = e.GetTouchPoints(InkCanvas2).Count;
TouchPointCollection pointCollection = e.GetTouchPoints(InkCanvas2);
for (int i = 0; i < pointsNumber; i++)
{
if (pointCollection[i].Action == TouchAction.Down)
{
preXArray[i] = pointCollection[i].Position.X;
preYArray[i] = pointCollection[i].Position.Y;
}
if (pointCollection[i].Action == TouchAction.Move)
{
Line line = new Line();
line.X1 = preXArray[i];
line.Y1 = preYArray[i];
line.X2 = pointCollection[i].Position.X;
line.Y2 = pointCollection[i].Position.Y;
line.Stroke = StrokeColorBrush;
line.Fill = StrokeColorBrush;
line.StrokeThickness = StrokeWidth;
line.StrokeDashCap = PenLineCap.Round;
line.StrokeStartLineCap = PenLineCap.Round;
line.StrokeEndLineCap = PenLineCap.Round;
InkCanvas2.Children.Add(line);
preXArray[i] = pointCollection[i].Position.X;
preYArray[i] = pointCollection[i].Position.Y;
Brush aSolidBrush = new SolidColorBrush(Colors.Black);
}
}
マウスイベント
void InkCanvas2_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
currentPoint = e.GetPosition(InkCanvas2);
oldPoint = currentPoint;
}
void InkCanvas2_MouseMove(object sender, MouseEventArgs e)
{
currentPoint = e.GetPosition(this.InkCanvas2);
Line line = new Line() { X1 = currentPoint.X, Y1 = currentPoint.Y, X2 = oldPoint.X, Y2 = oldPoint.Y };
line.Stroke = StrokeColorBrush;
line.StrokeThickness = StrokeWidth;
line.StrokeStartLineCap = PenLineCap.Round;
line.StrokeEndLineCap = PenLineCap.Round;
line.StrokeLineJoin = PenLineJoin.Round;
this.InkCanvas2.Children.Add(line);
oldPoint = currentPoint;
}
で全部クリアしました
InkCanvas2.Children.Clear();
今、消しゴム機能を実装しようとしています。次に、線の上に描画すると、それらの部分が消去されます。トリックをしない透明に色を変更してみました。助言がありますか?