2016-09-26 264 views
1

我想绘制富文本,如iOS的Attributed Text或Xamarin.Forms的FormattedStringSkiaSharp,但我找不到如何。如何使用Skia或SkiaSharp绘制丰富文本

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

我是否必须使用自己的富文本渲染逻辑来执行此操作?

回答

5

这是可行的,使用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); 

,然后你可以得出:

​​

我希望这有助于!

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

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