SharpDX.DirectWrite.TextLayout.GetLineMetrics C# (CSharp) Method

GetLineMetrics() public method

Retrieves the information about each individual text line of the text string.
If maxLineCount is not large enough E_NOT_SUFFICIENT_BUFFER, which is equivalent to HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), is returned and *actualLineCount is set to the number of lines needed.
public GetLineMetrics ( ) : LineMetrics[]
return LineMetrics[]
        public LineMetrics[] GetLineMetrics()
        {
            var lineMetrics = new LineMetrics[0];
            int lineCount = 0;
            int maxLineCount = 0;
            GetLineMetrics(lineMetrics, lineCount, out maxLineCount);
            if (maxLineCount > 0)
            {
                lineMetrics = new LineMetrics[maxLineCount];
                GetLineMetrics(lineMetrics, maxLineCount, out maxLineCount);
            }

            return lineMetrics;            
        }

Usage Example

Example #1
0
        private static float CalcBaselineOffset(DW.TextLayout tl, DominantBaseline db)
        {
            var lm = tl.GetLineMetrics()[0];

            switch (db)
            {
            case DominantBaseline.Middle:
                return((lm.Height + (lm.Height - lm.Baseline)) / 2);

            case DominantBaseline.Auto:
            case DominantBaseline.Baseline:
                return(lm.Baseline);

            default:
                return(lm.Height - lm.Baseline);
            }
        }