Duality.Resources.Font.FitText C# (CSharp) Méthode

FitText() public méthode

Returns a text that is cropped to fit a maximum width using this Font.
public FitText ( string text, float maxWidth, FitTextMode fitMode = FitTextMode.ByChar ) : string
text string The original text.
maxWidth float The maximum width it may occupy.
fitMode FitTextMode The mode by which the text fitting algorithm operates.
Résultat string
        public string FitText(string text, float maxWidth, FitTextMode fitMode = FitTextMode.ByChar)
        {
            Vector2 textSize = Vector2.Zero;

            float curOffset = 0.0f;
            GlyphData glyphData;
            Rect uvRect;
            float glyphXOff;
            float glyphXAdv;
            int lastValidLength = 0;
            for (int i = 0; i < text.Length; i++)
            {
                this.ProcessTextAdv(text, i, out glyphData, out uvRect, out glyphXAdv, out glyphXOff);

                textSize.X = Math.Max(textSize.X, curOffset + glyphXAdv);
                textSize.Y = Math.Max(textSize.Y, glyphData.height);

                if (textSize.X > maxWidth) return lastValidLength > 0 ? text.Substring(0, lastValidLength) : "";

                if (fitMode == FitTextMode.ByChar)
                    lastValidLength = i;
                else if (text[i] == ' ')
                    lastValidLength = fitMode == FitTextMode.ByWordLeadingSpace ? i : i + 1;

                curOffset += glyphXAdv;
            }

            return text;
        }