Xamarin 使用 Skiasharp 形成虚线圆
Xamarin forms Dotted Cirlce using Skia Sharp
我们如何使用 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);
你很接近。你只需要明白你在做什么。您是否正确设置了页面的构造函数?你必须
- 创建一个 SKCanvasView 实例并将其添加到您页面的内容中。
- 所以假设您的 class 或页面的名称是 SimpleCirclePage.cs,您需要将其与其他项目一起添加到其中。
- 将事件处理程序添加到 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);
}
我们如何使用 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);
你很接近。你只需要明白你在做什么。您是否正确设置了页面的构造函数?你必须
- 创建一个 SKCanvasView 实例并将其添加到您页面的内容中。
- 所以假设您的 class 或页面的名称是 SimpleCirclePage.cs,您需要将其与其他项目一起添加到其中。
- 将事件处理程序添加到 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);
}