我目前正在开发一款UWP应用,应该允许用户在InkCanvas上绘制他想要的任何形状。这个形状的边缘会自动完成,因此没有开放空间(到目前为止,一切都运行正常)。
现在我的问题是:如何使用单一颜色(或图案)自动填充此形状?我知道有一个"多边形点"算法,但我不知道如何在UWP InkCanvas中实现它,因为我没有真正了解如何搜索形状内的点而不迭代画布上的每个点。
编辑: 我实际上是通过使用" Canvas"作为绘制折线的叠加层。通过使用Polyline.Fill()方法,它工作。但我需要对" InkCanvas"仅
答案 0 :(得分:0)
现在我的问题是:如何使用单一颜色(或图案)自动填充此形状?我知道有一个“Point in Polygon”算法,但我不知道如何在UWP InkCanvas中实现它
您可以通过为InkStroke.DrawingAttributes
设置新的InkDrawingAttributes
来重绘Ink Canvas中存在的Ink笔划。
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;
}
}