c# uwp inkcanvas

c# - UWP InkCanvas llenan la forma dibujada a mano alzada con color



(1)

Actualmente estoy trabajando en una aplicación UWP que debería permitir al usuario dibujar cualquier forma que quiera en un InkCanvas. Estos bordes de formas se completan automáticamente para que no haya espacio abierto (hasta este punto todo funciona bien).

Ahora mi pregunta es: ¿cómo llené automáticamente esta forma con un solo color (o un patrón)? Sé que hay un algoritmo de "Punto en el polígono", pero no tengo idea de cómo implementarlo en UWP InkCanvas, porque realmente no entiendo cómo buscar los puntos dentro de la forma sin iterar sobre cada punto en el lona.

Editar: de hecho lo hice usando un "lienzo" como una superposición para dibujar una polilínea. Al usar el método Polyline.Fill () funcionó. Pero necesito el mismo efecto en el "InkCanvas" solamente.


Ahora mi pregunta es: ¿cómo llené automáticamente esta forma con un solo color (o un patrón)? Sé que hay un algoritmo "Point in Polygon", pero no tengo idea de cómo implementarlo en UWP InkCanvas

Puede volver a dibujar los trazos de tinta que existen en el lienzo de tinta configurando nuevos InkDrawingAttributes para InkStroke.DrawingAttributes .

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; } }