Skiasharp 文本渲染关闭 canvas
Skiasharp text rendering off canvas
我正在使用 skiasharp 和 xamarin 表单创建自定义控件。我 运行 感兴趣的是,当我尝试在 canvas 的左上角绘制文本时,我必须偏移 y 坐标才能使文本在 canvas 中呈现.我希望文本的 x y 坐标与矩形的 x y 坐标处于相同的位置。我错过了什么?
使用 Skiasharp.View.Forms - v1.68.1 关闭 nuget
谢谢!
protected override void OnPaintSurface(SKPaintSurfaceEventArgs args)
{
base.OnPaintSurface(args);
SKImageInfo info = args.Info;
SKSurface surface = args.Surface;
SKCanvas canvas = surface.Canvas;
canvas.Clear();
canvas.Save();
using var paint = new SKPaint {IsAntialias = true, Color = Color.Black.ToSKColor(), Style = SKPaintStyle.Stroke};
canvas.DrawRect(0, 0, info.Width, info.Height, paint);
canvas.DrawText("Off screen", 0, 0, paint);
canvas.DrawText("On screen", 0, 10, paint);
canvas.Restore();
}
您可以将y坐标设置为SKPaint.FontSpacing
,这是推荐的行间距。
canvas.DrawText("SKCanvasView Height and Width:", 0, paint.FontSpacing, paint);
我正在使用 skiasharp 和 xamarin 表单创建自定义控件。我 运行 感兴趣的是,当我尝试在 canvas 的左上角绘制文本时,我必须偏移 y 坐标才能使文本在 canvas 中呈现.我希望文本的 x y 坐标与矩形的 x y 坐标处于相同的位置。我错过了什么?
使用 Skiasharp.View.Forms - v1.68.1 关闭 nuget
谢谢!
protected override void OnPaintSurface(SKPaintSurfaceEventArgs args)
{
base.OnPaintSurface(args);
SKImageInfo info = args.Info;
SKSurface surface = args.Surface;
SKCanvas canvas = surface.Canvas;
canvas.Clear();
canvas.Save();
using var paint = new SKPaint {IsAntialias = true, Color = Color.Black.ToSKColor(), Style = SKPaintStyle.Stroke};
canvas.DrawRect(0, 0, info.Width, info.Height, paint);
canvas.DrawText("Off screen", 0, 0, paint);
canvas.DrawText("On screen", 0, 10, paint);
canvas.Restore();
}
您可以将y坐标设置为SKPaint.FontSpacing
,这是推荐的行间距。
canvas.DrawText("SKCanvasView Height and Width:", 0, paint.FontSpacing, paint);