public static TextMetrics GlobalMeasureText(Direct2DFactories factories, string text, Font font)
        {
            float maxWidth  = float.MaxValue;
            float maxHeight = float.MaxValue;
            var   layout    = new DW.TextLayout(factories.DWFactory, text, GetTextFormat(factories, font), maxWidth, maxHeight);

            return(new TextMetrics
            {
                Width = layout.Metrics.Width,
                Ascent = layout.Metrics.Height + layout.OverhangMetrics.Top,
                Descent = -layout.OverhangMetrics.Top,
            });
        }
 public static DW.TextFormat GetTextFormat(Direct2DFactories factories, Font font)
 {
     return(new DW.TextFormat(factories.DWFactory, font.Family, (float)font.Size));
 }