title: Why does MeasureString insist extra height is required for text?
body: <p>I get unexpected results when measuring a string in Windows 10/.NET 4.8/Winforms against a graphics object representing a printer device:</p>
  <pre><code>var doc = new PrintDocument
  {
      PrinterSettings = new PrinterSettings
      {
          PrinterName = &quot;Microsoft Print to PDF&quot;,
          PrintToFile = true,
          PrintFileName = &quot;c:\\temp\\test.pdf&quot;
      }
  };
  
  doc.PrintPage += (object sender, PrintPageEventArgs e) =&gt;
  {
      var font = new Font(&quot;Verdana&quot;, 8, FontStyle.Regular);
      var format = new StringFormat
      {
          Alignment = StringAlignment.Near,
          FormatFlags = StringFormatFlags.LineLimit,
          LineAlignment = StringAlignment.Near,
          Trimming = StringTrimming.Word,
          HotkeyPrefix = HotkeyPrefix.None
      };
  
      var text = &quot;0ZG0XLLJ620&quot;;
      var size = e.Graphics.MeasureString(text, font, new SizeF(300, 1000000), format);
      size = e.Graphics.MeasureString(text, font, new SizeF(size.Width, 1000000), format);
  
      e.Cancel = true;
  };
  
  doc.Print();
  </code></pre>
  <p>The height component of size becomes larger on the second call to MeasureString, and the width smaller.  Shouldn't the returned size be the same on both calls, especially since the second has been passed an available space wide enough to accommodate the text?</p>
  <p>Note, this doesn't happen in Windows7.  In fact, you can work around the problem by overwriting the Windows 10 Verdana with the one from Windows 7.</p>