IDWriteTextRenderer1.DrawUnderline

<summary> IDWriteTextLayout::Draw calls this function to instruct the client to draw an underline. </summary> <param name="clientDrawingContext">The context passed to IDWriteTextLayout::Draw.</param> <param name="baselineOriginX">X-coordinate of the baseline.</param> <param name="baselineOriginY">Y-coordinate of the baseline.</param> <param name="orientationAngle">Orientation of the underline.</param> <param name="underline">Underline logical information.</param> <param name="clientDrawingEffect">The drawing effect set in IDWriteTextLayout::SetDrawingEffect.</param> <returns> Standard HRESULT error code. </returns> <remarks> A single underline can be broken into multiple calls, depending on how the formatting changes attributes. If font sizes/styles change within an underline, the thickness and offset will be averaged weighted according to characters.

To get the correct top coordinate of the underline rect, add underline::offset to the baseline's Y. Otherwise the underline will be immediately under the text. The x coordinate will always be passed as the left side, regardless of text directionality. This simplifies drawing and reduces the problem of round-off that could potentially cause gaps or a double stamped alpha blend. To avoid alpha overlap, round the end points to the nearest device pixel. </remarks>

interface IDWriteTextRenderer1
HRESULT
DrawUnderline
(
,,,
DWRITE_GLYPH_ORIENTATION_ANGLE orientationAngle
,
const(DWRITE_UNDERLINE)* underline
,
)

Meta