簡體   English   中英

畫布上的 Skiasharp 文本渲染

[英]Skiasharp text rendering off canvas

我正在創建一個帶有skiasharp 和xamarin 表單的自定義控件。 我遇到的事情是,當我嘗試在畫布的左上角繪制文本時,我必須偏移 y 坐標,以便文本在畫布內呈現。 我希望文本的 xy 坐標與矩形的 xy 坐標處於相同的位置。 我錯過了什么?

使用 Skiasharp.View.Forms - v1.68.1 off 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);

參考https://github.com/xamarin/xamarin-forms-samples/blob/f7cc661331b5db605e64e7efe83ef2b9fc644afb/SkiaSharpForms/Demos/Demos/SkiaSharpFormsDemos/Basics/Sur​​faceSizePage.cs#L3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM