1

Windows 8 に手書きベースのアプリがあります。Windows Phone 8 に移植しようとしていますが、WP8 で使用できる Inking クラスは 3 つしかなく、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);
    }

最後から 2 行目にエラーがあり、canvas にはストロークの定義が含まれていません。InkPresenter は私のニーズには合いません。キャンバスでない場合、タッチ入力をキャプチャできる他の要素はありますか?

4

2 に答える 2

1

キャンバスは正しい方法ですが、Windows Phone 8 でInkPresenter クラスを使用して、キャンバス内に配置できるはずです。コードで InkPresenter ではなく Strokes を Canvas に追加しようとしているようです。WP8 でインクを実行する方法については、このサンプルをご覧ください。

于 2013-01-11T18:48:35.753 に答える
1

ご回答ありがとうございます。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 に答える