【问题标题】:Xamarin forms Dotted Cirlce using Skia SharpXamarin 使用 Skiasharp 形成虚线圆
【发布时间】:2019-11-17 22:42:52
【问题描述】:

我们如何使用 Skia Sharp 在 xamarin 表单中创建一个虚线圆圈,我尝试了很多,但我无法实现,有人可以帮我解决这个问题。

        SKImageInfo info = args.Info;
        SKSurface surface = args.Surface;
        SKCanvas canvas = surface.Canvas;

        canvas.Clear();

        SKPaint paint = new SKPaint
        {
            Style = SKPaintStyle.Stroke,
            Color = Color.Red.ToSKColor(),
            StrokeWidth = 10
        };
        canvas.DrawCircle(info.Width / 3, info.Height / 2, 100, paint);

【问题讨论】:

标签: xamarin xamarin.forms skiasharp skia


【解决方案1】:

你很接近。你只需要了解你在做什么。您是否正确设置了页面的构造函数?你必须

  1. 创建一个 SKCanvasView 实例并将其添加到页面的内容中。
  2. 因此,假设您的类或页面的名称是 SimpleCirclePage.cs,您需要在其中添加它以及其他项目。
  3. 向 SKCanvasView 实例的 PaintSurface 事件添加事件处理程序。

构造函数

public SimpleCirclePage()
{
        SKCanvasView canvasView = new SKCanvasView();
        canvasView.PaintSurface += OnCanvasViewPaintSurface;
        Content = canvasView;
}

事件处理程序

void OnCanvasViewPaintSurface(object sender, SKPaintSurfaceEventArgs args)
{
        SKImageInfo info = args.Info;
        SKSurface surface = args.Surface;
        SKCanvas canvas = surface.Canvas;

        canvas.Clear();

        // Creating the Outline of the circle with Black
        SKPaint paint = new SKPaint
        {
                Style = SKPaintStyle.Stroke,
                Color = Color.Black.ToSKColor(),
                StrokeWidth = 22
        };
        canvas.DrawCircle(info.Width / 2, info.Height / 2, 100, paint);

        // Filling the circle with red
        paint.Style = SKPaintStyle.Fill;
        paint.Color = SKColors.Red;
        canvas.DrawCircle(info.Width / 2, info.Height / 2, 100, paint);
}

【讨论】:

  • 这有意义吗?
猜你喜欢
  • 1970-01-01
  • 2018-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-29
相关资源
最近更新 更多