# C1.Win.Document.Util.C1DXTextLayout

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_Win_Document_Util_C1DXTextLayout" data-uid="C1.Win.Document.Util.C1DXTextLayout" class="text-break">C1DXTextLayout Class
</h1>
  <div class="markdown level0 summary"><p>Implements text rendering on the base of DirectWrite API.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
    <div class="level1"><span class="xref">C1TextLayout</span></div>
    <div class="level2"><span class="xref">C1DXTextLayout</span></div>
  </div>
  <div class="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="C1.Win.Document.Util.html">C1.Win.Document.Util</a></h6>
  <h6><strong>Assembly</strong>: C1.Win.Document.10.dll</h6>
  <h5 id="C1_Win_Document_Util_C1DXTextLayout_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class C1DXTextLayout : C1TextLayout, IDisposable</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public Class C1DXTextLayout
    Inherits C1TextLayout
    Implements IDisposable</code></pre>
  </div>
  <h3 id="constructors">Constructors
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout__ctor_C1_Win_Document_Util_IC1DXTextLayoutOwner_" data-uid="C1.Win.Document.Util.C1DXTextLayout.#ctor(C1.Win.Document.Util.IC1DXTextLayoutOwner)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.-ctor.html#C1_Win_Document_Util_C1DXTextLayout__ctor_C1_Win_Document_Util_IC1DXTextLayoutOwner_">C1DXTextLayout(IC1DXTextLayoutOwner)</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.html">C1DXTextLayout</a> class.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="fields">Fields
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_Owner" data-uid="C1.Win.Document.Util.C1DXTextLayout.Owner">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.Owner.html">Owner</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the <a class="xref" href="C1.Win.Document.Util.IC1DXTextLayoutOwner.html">IC1DXTextLayoutOwner</a> owning this <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.html">C1DXTextLayout</a> object.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_BuildCharMapWhenDrawGlyphRun" data-uid="C1.Win.Document.Util.C1DXTextLayout.BuildCharMapWhenDrawGlyphRun">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.BuildCharMapWhenDrawGlyphRun.html#C1_Win_Document_Util_C1DXTextLayout_BuildCharMapWhenDrawGlyphRun">BuildCharMapWhenDrawGlyphRun</a>
        </td>
        <td class="markdown level1 summary"><p>Gets a value indicating whether the arrays if characters' widths should be build and passed
to the DrawGlyphRun(...) method.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_SystemFontCollection" data-uid="C1.Win.Document.Util.C1DXTextLayout.SystemFontCollection">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.SystemFontCollection.html#C1_Win_Document_Util_C1DXTextLayout_SystemFontCollection">SystemFontCollection</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the <span class="xref">C1.Util.DX.DirectWrite.FontCollection</span>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_UseTransformForSidewaysText" data-uid="C1.Win.Document.Util.C1DXTextLayout.UseTransformForSidewaysText">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.UseTransformForSidewaysText.html#C1_Win_Document_Util_C1DXTextLayout_UseTransformForSidewaysText">UseTransformForSidewaysText</a>
        </td>
        <td class="markdown level1 summary"><p>Gets a value indicating whether the <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.html">C1DXTextLayout</a> should NOT
apply transform to the graphics when draw a vertical text using the font with NOT rotated glyphs.
For example, &quot;japan&quot; glyphs are NOT rotated when text is drawn in vertical direction from top to bottom.
Currently this property overriden in the <span class="xref">C1.Win.Document.Util.C1GdiGraphics.C1GdiTextLayout</span> because
if StringFormatFlags.DirectionVertical is specified in StringFormat then rotation transform
should NOT be applied for WinForms Graphics object.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_BuildSelection_C1_Document_Util_IC1TextSelectionBuilder_" data-uid="C1.Win.Document.Util.C1DXTextLayout.BuildSelection(C1.Document.Util.IC1TextSelectionBuilder)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.BuildSelection.html#C1_Win_Document_Util_C1DXTextLayout_BuildSelection_C1_Document_Util_IC1TextSelectionBuilder_">BuildSelection(IC1TextSelectionBuilder)</a>
        </td>
        <td class="markdown level1 summary"><p>Builds text selection.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_Clear" data-uid="C1.Win.Document.Util.C1DXTextLayout.Clear">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.Clear.html#C1_Win_Document_Util_C1DXTextLayout_Clear">Clear()</a>
        </td>
        <td class="markdown level1 summary"><p>Clears content of the <span class="xref">C1.Document.Util.C1TextLayout</span> object.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_ClearRanges" data-uid="C1.Win.Document.Util.C1DXTextLayout.ClearRanges">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.ClearRanges.html#C1_Win_Document_Util_C1DXTextLayout_ClearRanges">ClearRanges()</a>
        </td>
        <td class="markdown level1 summary"><p>Removes all elements and dispose in the ranges.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_CreateTextRange_System_String_C1_Document_Util_IC1TextFormat_" data-uid="C1.Win.Document.Util.C1DXTextLayout.CreateTextRange(System.String,C1.Document.Util.IC1TextFormat)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.CreateTextRange.html#C1_Win_Document_Util_C1DXTextLayout_CreateTextRange_System_String_C1_Document_Util_IC1TextFormat_">CreateTextRange(string, IC1TextFormat)</a>
        </td>
        <td class="markdown level1 summary"><p>Creates <span class="xref">C1.Document.Util.C1TextLayoutRange</span> object.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_DWFontStyleToFontStyle_C1_Util_DX_DirectWrite_FontStyle_" data-uid="C1.Win.Document.Util.C1DXTextLayout.DWFontStyleToFontStyle(C1.Util.DX.DirectWrite.FontStyle)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.DWFontStyleToFontStyle.html#C1_Win_Document_Util_C1DXTextLayout_DWFontStyleToFontStyle_C1_Util_DX_DirectWrite_FontStyle_">DWFontStyleToFontStyle(FontStyle)</a>
        </td>
        <td class="markdown level1 summary"><p>Converts <span class="xref">C1.Util.DX.DirectWrite.FontStyle</span> to <span class="xref">C1.Document.C1FontStyle</span> value.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_DWFontWeightToFontWeight_C1_Util_DX_DirectWrite_FontWeight_" data-uid="C1.Win.Document.Util.C1DXTextLayout.DWFontWeightToFontWeight(C1.Util.DX.DirectWrite.FontWeight)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.DWFontWeightToFontWeight.html#C1_Win_Document_Util_C1DXTextLayout_DWFontWeightToFontWeight_C1_Util_DX_DirectWrite_FontWeight_">DWFontWeightToFontWeight(FontWeight)</a>
        </td>
        <td class="markdown level1 summary"><p>Converts <span class="xref">C1.Util.DX.DirectWrite.FontWeight</span> to <span class="xref">C1.Document.C1FontWeight</span> value.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_Dispose_System_Boolean_" data-uid="C1.Win.Document.Util.C1DXTextLayout.Dispose(System.Boolean)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.Dispose.html#C1_Win_Document_Util_C1DXTextLayout_Dispose_System_Boolean_">Dispose(bool)</a>
        </td>
        <td class="markdown level1 summary"><p>Releases the unmanaged resources used by the <span class="xref">C1.Document.Util.C1TextLayout</span>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_Draw_C1_Document_Util_C1Graphics_System_Double_System_Double_" data-uid="C1.Win.Document.Util.C1DXTextLayout.Draw(C1.Document.Util.C1Graphics,System.Double,System.Double)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.Draw.html#C1_Win_Document_Util_C1DXTextLayout_Draw_C1_Document_Util_C1Graphics_System_Double_System_Double_">Draw(C1Graphics, double, double)</a>
        </td>
        <td class="markdown level1 summary"><p>Draws current <span class="xref">C1.Document.Util.C1TextLayout</span> on specified <span class="xref">C1.Document.Util.C1Graphics</span>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_DrawLine_C1_Document_Util_C1Graphics_System_Double_System_Double_System_Double_System_Double_System_Drawing_Color_System_Double_C1_Document_DashStyle_" data-uid="C1.Win.Document.Util.C1DXTextLayout.DrawLine(C1.Document.Util.C1Graphics,System.Double,System.Double,System.Double,System.Double,System.Drawing.Color,System.Double,C1.Document.DashStyle)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.DrawLine.html#C1_Win_Document_Util_C1DXTextLayout_DrawLine_C1_Document_Util_C1Graphics_System_Double_System_Double_System_Double_System_Double_System_Drawing_Color_System_Double_C1_Document_DashStyle_">DrawLine(C1Graphics, double, double, double, double, Color, double, DashStyle)</a>
        </td>
        <td class="markdown level1 summary"><p>Draws a line.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_FillRectangle_C1_Document_Util_C1Graphics_C1_Document_C1Brush_C1_Interop_Rect_" data-uid="C1.Win.Document.Util.C1DXTextLayout.FillRectangle(C1.Document.Util.C1Graphics,C1.Document.C1Brush,C1.Interop.Rect)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.FillRectangle.html#C1_Win_Document_Util_C1DXTextLayout_FillRectangle_C1_Document_Util_C1Graphics_C1_Document_C1Brush_C1_Interop_Rect_">FillRectangle(C1Graphics, C1Brush, Rect)</a>
        </td>
        <td class="markdown level1 summary"><p>Fill rectangle with specified <span class="xref">C1.Document.C1Brush</span>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_FillRectangle_C1_Document_Util_C1Graphics_System_Drawing_Color_C1_Interop_Rect_" data-uid="C1.Win.Document.Util.C1DXTextLayout.FillRectangle(C1.Document.Util.C1Graphics,System.Drawing.Color,C1.Interop.Rect)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.FillRectangle.html#C1_Win_Document_Util_C1DXTextLayout_FillRectangle_C1_Document_Util_C1Graphics_System_Drawing_Color_C1_Interop_Rect_">FillRectangle(C1Graphics, Color, Rect)</a>
        </td>
        <td class="markdown level1 summary"><p>Fill rectangle with specified color.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_FontStyleToDWFontStyle_C1_Document_C1FontStyle_" data-uid="C1.Win.Document.Util.C1DXTextLayout.FontStyleToDWFontStyle(C1.Document.C1FontStyle)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.FontStyleToDWFontStyle.html#C1_Win_Document_Util_C1DXTextLayout_FontStyleToDWFontStyle_C1_Document_C1FontStyle_">FontStyleToDWFontStyle(C1FontStyle)</a>
        </td>
        <td class="markdown level1 summary"><p>Converts <span class="xref">C1.Document.C1FontStyle</span> to <span class="xref">C1.Util.DX.DirectWrite.FontStyle</span> value.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_FontWeightToDWFontWeight_C1_Document_C1FontWeight_" data-uid="C1.Win.Document.Util.C1DXTextLayout.FontWeightToDWFontWeight(C1.Document.C1FontWeight)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.FontWeightToDWFontWeight.html#C1_Win_Document_Util_C1DXTextLayout_FontWeightToDWFontWeight_C1_Document_C1FontWeight_">FontWeightToDWFontWeight(C1FontWeight)</a>
        </td>
        <td class="markdown level1 summary"><p>Converts <span class="xref">C1.Document.C1FontWeight</span> to <span class="xref">C1.Util.DX.DirectWrite.FontWeight</span> value.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_GetCaretCoords_System_Int32_System_Boolean_" data-uid="C1.Win.Document.Util.C1DXTextLayout.GetCaretCoords(System.Int32,System.Boolean)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.GetCaretCoords.html#C1_Win_Document_Util_C1DXTextLayout_GetCaretCoords_System_Int32_System_Boolean_">GetCaretCoords(int, bool)</a>
        </td>
        <td class="markdown level1 summary"><p>Use this function to get the pixel location relative to the top-left of the layout box given
the text position and the logical side of the position.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_GetChar_System_Int32_" data-uid="C1.Win.Document.Util.C1DXTextLayout.GetChar(System.Int32)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.GetChar.html#C1_Win_Document_Util_C1DXTextLayout_GetChar_System_Int32_">GetChar(int)</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the char at specified text position.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_GetSplitPosition_System_Double_System_Int32_C1_Document_Util_C1TextLayout_SplitPositionInfo__" data-uid="C1.Win.Document.Util.C1DXTextLayout.GetSplitPosition(System.Double,System.Int32,C1.Document.Util.C1TextLayout.SplitPositionInfo@)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.GetSplitPosition.html#C1_Win_Document_Util_C1DXTextLayout_GetSplitPosition_System_Double_System_Int32_C1_Document_Util_C1TextLayout_SplitPositionInfo__">GetSplitPosition(double, int, out SplitPositionInfo)</a>
        </td>
        <td class="markdown level1 summary"><p>Determines position where text can be split.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_GetString_System_Int32_System_Int32_" data-uid="C1.Win.Document.Util.C1DXTextLayout.GetString(System.Int32,System.Int32)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.GetString.html#C1_Win_Document_Util_C1DXTextLayout_GetString_System_Int32_System_Int32_">GetString(int, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the string containg part of the text of this <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.html">C1DXTextLayout</a> object.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_GetText" data-uid="C1.Win.Document.Util.C1DXTextLayout.GetText">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.GetText.html#C1_Win_Document_Util_C1DXTextLayout_GetText">GetText()</a>
        </td>
        <td class="markdown level1 summary"><p>Get the text of this text layout as a single string.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_HitTest_System_Double_System_Double_" data-uid="C1.Win.Document.Util.C1DXTextLayout.HitTest(System.Double,System.Double)">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.HitTest.html#C1_Win_Document_Util_C1DXTextLayout_HitTest_System_Double_System_Double_">HitTest(double, double)</a>
        </td>
        <td class="markdown level1 summary"><p>Use this function passing in a specific pixel location relative to the top-left
location of the layout box and obtains the information about the correspondent
hit-test metrics of the text string where the hit-test has occurred.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_MeasureAutoSize" data-uid="C1.Win.Document.Util.C1DXTextLayout.MeasureAutoSize">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.MeasureAutoSize.html#C1_Win_Document_Util_C1DXTextLayout_MeasureAutoSize">MeasureAutoSize()</a>
        </td>
        <td class="markdown level1 summary"><p>Measures the text size.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_Document_Util_C1DXTextLayout_MeasureLayout" data-uid="C1.Win.Document.Util.C1DXTextLayout.MeasureLayout">
          <a class="xref" href="C1.Win.Document.Util.C1DXTextLayout.MeasureLayout.html#C1_Win_Document_Util_C1DXTextLayout_MeasureLayout">MeasureLayout()</a>
        </td>
        <td class="markdown level1 summary"><p>Measures full text layout, after calling this method you can use all methods of <span class="xref">C1.Document.Util.C1TextLayout</span>,
like HitTest(), Draw() etc.</p>
</td>
      </tr>
    </tbody>
  </table>

</div>
