これを行う組み込みの方法はないようです (StringFormat を受け取り、その LineAlignment プロパティで指定する DrawString() のオーバーロードを呼び出しても、提供する四角形が十分な高さの場合、テキストを下揃えにするだけです)。 )。StringAlignment.Far
ただし、自分で計算を実行し、それに応じてY
座標を変更することはできますPointF
。たとえば、 FontクラスのHeightプロパティを使用できます。
yourPoint.Y -= yourFont.Height;
yourGraphics.DrawString(yourText, yourFont, yourBrush, yourPoint);
上記のコードは、実際にはベースラインの配置を実装していないことに注意してください (グリフ全体が の元の座標の上に立つことになりますyourPoint.Y
)。真のベースライン アラインメントでは、 のような文字の「テール」部分がそのポイントより下にあるp
必要があります。y
次のような、より複雑なもので実装できます。
FontFamily fontFamily = yourFont.FontFamily;
FontStyle fontStyle = yourFont.Style;
yourPoint.Y -= fontFamily.GetCellAscent(fontStyle) * yourFont.Size
/ fontFamily.GetEmHeight(fontStyle);