3

我想FormattedStringSkiaSharp绘制 iOS 的 Attributed Text 或 Xamarin.Forms 之类的富文本,但我找不到方法。

我找到了该DrawText方法,但它用于使用一种颜色和一种字体进行简单的文本渲染。没有混合颜色和/或字体,也没有粗体、斜体、删除线或下划线等样式。

我必须用我自己的富文本渲染逻辑来做吗?

4

1 回答 1

13

使用该SKPaint类型是可行的。基本上,当你绘制时,你设置了油漆的属性:

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);

编辑

一段时间后,似乎我们实际上有了一个更好的方法来绘制文本——而不仅仅是基本的下划线。我会全心全意地推荐 Brad Robinson 的这个库:https ://github.com/toptensoftware/RichTextKit

我的意思是,看看那美丽的东西!

富文本工具包

于 2016-11-04T17:28:46.523 回答