2016-09-26 270 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);