如何使用Skia或SkiaSharp绘制富文本

时间:2016-09-26 15:04:49

标签: c# xamarin skia skiasharp

我希望使用 SkiaSharp 来绘制富有文字的iOS文件或Xamarin.Forms' FormattedString,但我无法找到

我找到了DrawText方法,但它用于简单的文字渲染,只有一种颜色和一种字体。没有混合颜色和/或字体,也没有粗体,斜体,透视或下划线等样式。

我是否必须使用自己的富文本呈现逻辑?

1 个答案:

答案 0 :(得分:6)

使用SKPaint类型可行。基本上,在绘制时,可以在paint上设置属性:

var paint = new SKPaint();
paint.StrikeThruText = true;
paint.TextSize = 24;
paint.Color = SKColors.Yellow;
paint.UnderlineText = true;
paint.Typeface = SKTypeface.FromFamilyName(
    "Arial", 
    SKFontStyleWeight.Bold, 
    SKFontStyleWidth.Normal, 
    SKFontStyleSlant.Italic);

然后你可以画:

canvas.DrawText("Fancy Text", 30, 30, paint);

我希望这有帮助!

对于其他效果,您可以使用SKShaderSKMaskFilter类型。这模糊了:

path.MaskFilter = SKMaskFilter.CreateBlur(SKBlurStyle.Normal, 5);