Стирание линии с помощью сенсорного ввода Windows Phone 8

У меня есть своего рода приложение для рисования. Линии рисуются на сенсорном вводе.

      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();

теперь я пытаюсь реализовать функцию ластика, затем я рисую поверх линии, она должна стереть эти части. Я попытался изменить цвет на прозрачный, но это не помогло. Какие-либо предложения?


person alfah    schedule 07.06.2013    source источник


Ответы (1)


Вы можете сделать что-то вроде этого:

inkCanvas2.EditingMode = InkCanvasEditingMode.EraseByPoint;
person Manish    schedule 11.06.2013
comment
InkCanvas2 — это элемент Canvas. Для него нет атрибута режима редактирования. Это в виндовс телефоне? - person alfah; 11.06.2013
comment
Это свойство доступно в InkCanvas, но не в классе Canvas. И похоже у нас нет InkCanvas в Windows Phone. - person Manish; 11.06.2013