2016-10-03 10 views
0

私はWindows 10ビルド14939でInkCanvasInkToolBarを使用して、ユーザーのインクストロークをキャプチャしています。InkCanvasでのやり直し機能

私は、しかし、私は次のものを作成する手間を持って元に戻す/やり直しを持つカスタムボタンをやりたい:

private static InkStroke CreateStroke(List<InkPoint> redoInkPoints) { 
    var strokeBuilder = new InkStrokeBuilder(); 
    Matrix3x2 matr = new Matrix3x2(); 
    return strokeBuilder.CreateStrokeFromInkPoints(redoInkPoints, matr); 
} 

「ArgmentタイプのMATR変数に関するしかし、ビジュアルスタジオの苦情'System.Numerics.Matrix3x2'はパラメータタイプ 'Windows.Foundation.Numerics.Matrix3x2'に割り当てられません

私は持っていませんが私のコードのどこにwindows.foundation.numerics.matrix3x2を参照してください。

CreateStrokeFromInkPointsの使用方法については、誰でも知っていますか?

答えて

0

あなたのコードによると、ここでの問題は、あなたがInkStrokeBuilder.CreateStrokeFromInkPointsメソッドで間違ったマトリックスを使ったことだと思います。 Matrix3x2 matr = new Matrix3x2();を使用しているときは、ゼロ行列を作成しています。それはあなたのすべての点を特異点に崩壊させます。これはここでは有効な値ではありません。この問題を解決するには、恒等行列を表すSystem.Numerics.Matrix3x2.Identityプロパティを使用します。

XAML:

<StackPanel> 
    <InkCanvas x:Name="inkCanvas" Width="500" Height="200" /> 
    <Button Click="Button_Click">Add a stroke</Button> 
</StackPanel> 

は、コードビハインド:

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    List<InkPoint> inkPoints = new List<InkPoint> { new InkPoint(new Point(10, 10), 0.5f), new InkPoint(new Point(100, 100), 0.5f) }; 

    InkStroke stroke = CreateStroke(inkPoints); 

    inkCanvas.InkPresenter.StrokeContainer.AddStroke(stroke); 
} 

private static InkStroke CreateStroke(List<InkPoint> redoInkPoints) 
{ 
    var strokeBuilder = new InkStrokeBuilder(); 
    System.Numerics.Matrix3x2 matr = System.Numerics.Matrix3x2.Identity; 
    return strokeBuilder.CreateStrokeFromInkPoints(redoInkPoints, matr); 
} 
+0

が変化し、視覚的なスタジオはまだ不満をしかし、あなたの提案のためのMATR変数をあなたに感謝し、次は簡単なサンプルです'Argment type' System.Numerics.Matrix3x2 'は、パラメータタイプ' Windows.Foundation.Numerics.Matrix3x2 'に割り当てられません。 Matrix3x2がSystem.Numerics(ビジュアルスタジオで提案されている)またはWindows.Foundation.Numerics(上記のmsdnリンクから推薦された)の型であるかのように、私は混乱しています。 – Jennifer

+0

@ Jennifer新しい空のアプリケーションプロジェクトで自分のコードを試しましたか?それは私の側でうまくいく。それでもエラーが発生した場合は、投稿したコードに含まれていない可能性があります。問題を再現できる[mcve]を共有することができれば役に立ちます。 –

+0

@Jennifer 'Windows.Foundation.Numerics.Matrix3x2'は基本的なWindowsランタイムタイプです。開発にC#を使用している場合は、 'System.Numerics.Matrix3x2'を使用してください。 –

関連する問題