public DWriteRenderingMode GetRecommendedRenderingMode(
            float size,
            float pixelsPerDip,
            DWriteMeasuringMode measuringMode,
            DWriteRenderingParams renderingParams)
        {
            DWriteRenderingMode renderingMode;

            this.handle.GetRecommendedRenderingMode(
                size,
                pixelsPerDip,
                measuringMode,
                renderingParams == null ? null : (IDWriteRenderingParams)renderingParams.Handle,
                out renderingMode);
            return(renderingMode);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="DWriteUnderline"/> struct.
 /// </summary>
 /// <param name="width">Width of the underline, measured parallel to the baseline.</param>
 /// <param name="thickness">Thickness of the underline, measured perpendicular to the baseline.</param>
 /// <param name="offset">Offset of the underline from the baseline.</param>
 /// <param name="runHeight">Height of the tallest run where the underline applies.</param>
 /// <param name="readingDirection">Reading direction of the text associated with the underline.</param>
 /// <param name="flowDirection">Flow direction of the text associated with the underline.</param>
 /// <param name="localeName">Locale of the text the underline is being drawn under.</param>
 /// <param name="measuringMode">The measuring mode.</param>
 public DWriteUnderline(
     float width,
     float thickness,
     float offset,
     float runHeight,
     DWriteReadingDirection readingDirection,
     DWriteFlowDirection flowDirection,
     string localeName,
     DWriteMeasuringMode measuringMode)
 {
     this.width            = width;
     this.thickness        = thickness;
     this.offset           = offset;
     this.runHeight        = runHeight;
     this.readingDirection = readingDirection;
     this.flowDirection    = flowDirection;
     this.localeName       = localeName;
     this.measuringMode    = measuringMode;
 }
 public DWriteRenderingMode GetRecommendedRenderingMode(
     float size,
     float pixelsPerDip,
     DWriteMeasuringMode measuringMode,
     DWriteRenderingParams renderingParams)
 {
     DWriteRenderingMode renderingMode;
     this.handle.GetRecommendedRenderingMode(
         size,
         pixelsPerDip,
         measuringMode,
         renderingParams == null ? null : (IDWriteRenderingParams)renderingParams.Handle,
         out renderingMode);
     return renderingMode;
 }
        public void DrawGlyphRun(D2D1Point2F baselineOrigin, DWriteGlyphRun glyphRun, D2D1Brush foregroundBrush, DWriteMeasuringMode measuringMode)
        {
            if (foregroundBrush == null)
            {
                throw new ArgumentNullException("foregroundBrush");
            }

            this.GetHandle<ID2D1RenderTarget>().DrawGlyphRun(baselineOrigin, ref glyphRun, foregroundBrush.GetHandle<ID2D1Brush>(), measuringMode);
        }
        public void DrawText(string text, DWriteTextFormat textFormat, D2D1RectF layoutRect, D2D1Brush defaultForegroundBrush, D2D1DrawTextOptions options, DWriteMeasuringMode measuringMode)
        {
            if (text == null)
            {
                throw new ArgumentNullException("text");
            }

            if (textFormat == null)
            {
                throw new ArgumentNullException("textFormat");
            }

            if (defaultForegroundBrush == null)
            {
                throw new ArgumentNullException("defaultForegroundBrush");
            }

            this.GetHandle<ID2D1RenderTarget>().DrawText(text, (uint)text.Length, (IDWriteTextFormat)textFormat.Handle, ref layoutRect, defaultForegroundBrush.GetHandle<ID2D1Brush>(), options, measuringMode);
        }