0

TextRenderer (.NET v4.0) を使用して、カスタム コントロールにテキストの段落を表示しようとしています。許可された最大スペースに対してテキストが大きすぎる場合は、テキストを切り捨てて省略記号を最後に配置したいのですが、それを行うための TextFormatFlags の正しい組み合わせがわかりません。これまでのテスト コードの抜粋。

Using vPlotFont As New Font("Verdana", 7, FontStyle.Regular, GraphicsUnit.Point)
  Dim vWidth = Me.Width - vTextLeft - Me.Margin.Right
  Dim vFlags = TextFormatFlags.Left Or TextFormatFlags.EndEllipsis Or TextFormatFlags.WordBreak
  Dim vRequiredHeight = TextRenderer.MeasureText(mvSummaryData, vPlotFont, New Size(vWidth, 1), vFlags).Height
  Dim vRectangle As New Rectangle(vTextLeft, 25, vWidth, Math.Min(vRequiredHeight, 40))  ' Restrict to 40 pixels maximum
  TextRenderer.DrawText(e.Graphics, mvSummaryData, vPlotFont, vRectangle, Color.Red, vFlags)
  e.Graphics.DrawRectangle(Pens.Blue, vRectangle)  ' For debugging/testing only
End Using

高さは 40 に制限されているため、収まらないものはすべて切り捨てられます。

4

0 に答える 0