NGraphics:有没有办法在笔画上设置圆帽

NGraphics: Is there a way to have round cap on strokes

您好,我正在使用 NGraphics 为 xamarin 表单绘制笔画。在 Android 中,我可以在启用圆帽的情况下绘制笔划,因此端点的笔划是圆形的。在 NGraphics 中,我仍然可以绘制笔划,但端点有角。

简短回答:否

NGraphic 的 Pen Class 不会公开 StrokeJoinsStrokeCaps 等项目。

您总是可以 mod 源代码将这些类型的属性添加到 Pen Class 并设置适当的平台相关项。

即在Android实现中,私有GetPenPaint方法设置了AndroidPaint对象,只需要在适当的时候设置Paint.StrokeCap

`paint.StrokeCap = Paint.Cap.Round;`

参考:https://github.com/praeclarum/NGraphics/blob/master/Platforms/NGraphics.Android/AndroidPlatform.cs#L193

Paint GetPenPaint (Pen pen)
{
    var paint = new Paint (PaintFlags.AntiAlias);
    paint.SetStyle (Paint.Style.Stroke);
    paint.SetARGB (pen.Color.A, pen.Color.R, pen.Color.G, pen.Color.B);
    paint.StrokeWidth = (float)pen.Width;

    if (pen.DashPattern != null && pen.DashPattern.Any ()) {
        var dashPathEffect = new DashPathEffect(pen.DashPattern.ToArray(), 0);
        paint.SetPathEffect(dashPathEffect);
    }

    return paint;
}