2017-07-03 75 views
3

現在、私はUWPアプリケーションで作業しています。これにより、ユーザーはInkCanvasで必要な図形を描画できます。この図形のエッジは自動的に完成し、オープンスペースはありません(この時点まではすべて正常に機能します)。UWP InkCanvasは、手描きの図形を色で塗りつぶします

私の質問は次のとおりです。この図形を単一の色(またはパターン)で自動的に塗りつぶすにはどうすればよいですか?私は "ポリゴンのポイント"アルゴリズムがあることを知っていますが、UWP InkCanvasでどのように実装するかわかりません。なぜなら、シェイプ内のポイントをキャンバス。

編集: 実際には、キャンバスをオーバーレイとして使用してポリラインを描画しました。 Polyline.Fill()メソッドを使用することで効果がありました。しかし、私は "InkCanvas"と同じ効果が必要です。

答えて

0

私の質問は次のとおりです。この図形を単一の色(またはパターン)で自動的に塗りつぶすにはどうすればよいですか?私は「ポイントポリゴンで」アルゴリズムがあることを知っているが、私はどのようにInkStroke.DrawingAttributesのための新しいInkDrawingAttributesを設定することにより、UWP InkCanvasに

あなたはインクキャンバスに存在するあなたのインクストロークを再描画可能性があり、それを実現するには考えています。

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    InkDrawingAttributes attr = new InkDrawingAttributes(); 
    attr.Color = Colors.Red; 
    attr.IgnorePressure = true; 
    attr.PenTip = PenTipShape.Circle; 
    attr.Size = new Size(4, 10); 
    attr.PenTipTransform = Matrix3x2.CreateRotation((float)(70 * Math.PI/180)); 
    IReadOnlyList<InkStroke> InkStrokeList = MyInk.InkPresenter.StrokeContainer.GetStrokes(); 
    foreach (InkStroke temp in InkStrokeList) 
    { 
     temp.DrawingAttributes = attr; 
    }   
} 

enter image description here

+0

たぶん私は十分に私の質問に指定されていませんでしたが、私は私のインクストロークの色を変更する必要はありません。描かれた「形」を色で塗りつぶしたい。たとえば、あなたのデモであなたのボタンをクリックした後は、全体が黒い "ポテトの形をした"円でなければなりません。 – eXodiquas

関連する問題