如何使用 SkiaSharp 测量尾随空格?

Posted

技术标签:

【中文标题】如何使用 SkiaSharp 测量尾随空格?【英文标题】:How to measure trailing spaces using SkiaSharp? 【发布时间】:2018-08-03 13:06:12 【问题描述】:

当文本在前缀或后缀中包含空格时,SkiaSharp 不会考虑空格。它仅返回文本宽度并忽略空格。我正在使用以下代码 sn-p 来测量一个字符串。

        SKPaint paint = new SKPaint();
        paint.Typeface = SKTypeface.FromFamilyName("Calibri");
        paint.TextSize = 15;

        SKRect rect = new SKRect();
        paint.MeasureText(" Test ", ref rect);

是否有任何选项可以使用 SkiaSharp 测量带有尾随空格的文本?

【问题讨论】:

【参考方案1】:

需要使用MeasureText的返回值:

float width = paint.MeasureText(" Test ", ref rect);
float whiteSpaceWidth = width - rect.Width;

如果你想调整 rect 以包含空格:

rect.Left -= whiteSpaceWidth / 2;
rect.Right += whiteSpaceWidth / 2;

【讨论】:

以上是关于如何使用 SkiaSharp 测量尾随空格?的主要内容,如果未能解决你的问题,请参考以下文章

前导和尾随空格剪切 + 中间空格替换

如何删除前导和尾随空格?

如何使用正则表达式删除尾随空格?

如何使用正则表达式删除尾随空格?

如何在Java中仅删除字符串的尾随空格并保留前导空格?

如何递归删除所有文件的尾随空格?