1

我在 Windows 8 中有一个基于手写的应用程序。我正在尝试将它移植到 Windows Phone 8。但是只有 3 个可用于 WP8 的 Inking 类,并且没有 Inkmanager 类。我们可以使用画布代替 InkPresenter。笔画的所有功能都可用吗?我尝试了以下代码

private void MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
        InkCanvas.CaptureMouse();
        StylusPointCollection MyStylusPointCollection = new StylusPointCollection();
        MyStylusPointCollection.Add(e.StylusDevice.GetStylusPoints(InkCanvas));
        NewStroke = new Stroke(MyStylusPointCollection);
        //InkCanvas.Strokes.Add(NewStroke);
        NewStroke.DrawingAttributes = SetAttributes(draw);
    }

它说的倒数第二行有一个错误,画布不包含笔划的定义。InkPresenter 不适合我的需要。如果不是画布,是否还有其他元素可以捕获触摸输入?

4

2 回答 2

1

Canvas 是正确的方法,但您应该能够在 Windows Phone 8 中使用InkPresenter 类并将其放置在 Canvas 中。您似乎正在尝试将 Strokes 添加到 Canvas 而不是代码中的 InkPresenter。看看这个示例,了解如何在 WP8 上完成 Ink。

于 2013-01-11T18:48:35.753 回答
1

感谢您的回答,The Inkpresenter 无法满足我的需求。所以我使用了画布和触摸输入。对于那些正在寻找线索的人...

我已经像这样使用Touch_FrameReported和基本的线条图

            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 = new SolidColorBrush(Colors.Black);
                line.Fill = new SolidColorBrush(Colors.Black);
                line.StrokeThickness = 15;
                line.StrokeDashCap = PenLineCap.Round;
                line.StrokeStartLineCap = PenLineCap.Round;
                line.StrokeEndLineCap = PenLineCap.Round;

                drawCanvas.Children.Add(line);                  
于 2013-02-01T07:10:30.153 回答