SkiaSharp不会用StrokeAndFill填充三角形

LCJ*_*LCJ 1 skia xamarin xamarin.forms skiasharp

我试图绘制并填充一个三角形。我提到了一个android系统-问题如何在android画布上绘制实心三角形并执行以下操作。它绘制三角形,但不填充它。如何填充它?另外,是否可以用不同于线条颜色的颜色填充它?

Xamarin形式

private void OnPainting(object sender, SKPaintSurfaceEventArgs e)
{
        var surface = e.Surface;
        var canvas = surface.Canvas;
        canvas.Clear(SKColors.White);


        var pathStroke2 = new SKPaint
        {
            IsAntialias = true,
            Style = SKPaintStyle.StrokeAndFill,
            Color = new SKColor(244, 0, 110, 200),
            StrokeWidth = 5
        };

        var path2 = new SKPath { FillType = SKPathFillType.EvenOdd };
        path2.MoveTo(0, 0);
        path2.LineTo(0, 140);
        path2.MoveTo(0, 140);
        path2.LineTo(140, 140);
        path2.MoveTo(140, 140);
        path2.LineTo(0, 0);
        path2.Close();
        canvas.DrawPath(path2, pathStroke2);

    }
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Jas*_*son 5

您不需要同时使用LineTo()和MoveTo()-我怀疑这样做会破坏填充算法。相反,只需使用

path2.MoveTo(0, 0);
path2.LineTo(0, 140);
path2.LineTo(140, 140);
path2.LineTo(0, 0);
path2.Close();
Run Code Online (Sandbox Code Playgroud)