From 71f52aa9155a47ce38a15d4d10321a76d99191e9 Mon Sep 17 00:00:00 2001 From: donandren Date: Wed, 15 Jun 2016 02:19:22 +0300 Subject: [PATCH] fixed left,right text align hittesting skia FormattedTextImpl --- src/Skia/Avalonia.Skia/FormattedTextImpl.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Skia/Avalonia.Skia/FormattedTextImpl.cs b/src/Skia/Avalonia.Skia/FormattedTextImpl.cs index 55f5286bfa..af826c27b6 100644 --- a/src/Skia/Avalonia.Skia/FormattedTextImpl.cs +++ b/src/Skia/Avalonia.Skia/FormattedTextImpl.cs @@ -290,10 +290,22 @@ namespace Avalonia.Skia { // Build character rects var fm = _paint.FontMetrics; + + float width = (float)(Constraint.Width > 0 && !double.IsPositiveInfinity(Constraint.Width) ? + Constraint.Width : + _size.Width); + for (int li = 0; li < _skiaLines.Count; li++) { var line = _skiaLines[li]; float prevRight = 0; + + switch (_paint.TextAlign) + { + case SKTextAlign.Center: prevRight = (width - line.Width) / 2; break; + case SKTextAlign.Right: prevRight = width - line.Width; break; + } + double nextTop = line.Top + line.Height; if (li + 1 < _skiaLines.Count)