斜めに書くためにdrawStringメソッドを使用するにはどうすればよいですか
-
01-07-2019 - |
質問
私はC# 2005を使用しています。画像に文字列を斜めに書き込みたいと考えています。ただし、デフォルトでは、C# には水平方向または垂直方向に記述するオプションが用意されています。
斜めに書くにはどうすればいいですか?
ありがとう
解決
をしてください Graphics.rotateTransform drawString呼び出しの前。Phil Wright 氏が指摘しているように、後で変更を元に戻すことを忘れないでください。
他のヒント
Graphics クラスで使用できる RotateTransform と TranslateTransform を使用できます。DrawString の使用は GDI+ であるため、変換は描画に影響します。そこで、このようなものを使用します...
g.RotateTransform(45f);
g.DrawString("My String"...);
g.RotateTransform(-45f);
ただし、変更を元に戻すことを忘れないでください。
この機能を利用することができます。
void DrawDigonalString(Graphics G, string S, Font F, Brush B, PointF P, int Angle)
{
SizeF MySize = G.MeasureString(S, F);
G.TranslateTransform(P.X + MySize.Width / 2, P.Y + MySize.Height / 2);
G.RotateTransform(Angle);
G.DrawString(S, F, B, new PointF(-MySize.Width / 2, -MySize.Height / 2));
G.RotateTransform(-Angle);
G.TranslateTransform(-P.X - MySize.Width / 2, -P.Y- MySize.Height / 2);
}
このような
あなたは正しいです..その方法で行うことができます..しかし、テキストは常に上から下に書かれるので、それを下から上に変更できるかどうかはわかりません..乾杯
C# に組み込まれている、テキストを垂直方向に描画する別の方法があります。明示的にグラフィックスを変換する必要はありません。StringFormatクラスを使用できます。テキストを垂直方向に描画するサンプルコードは次のとおりです。
StringFormat sf = 新しい StringFormat();sf.FormatFlags = StringFormatFlags.DirectionVertical;e.Graphics.DrawString("My String", this.Font, Brushes.Black, PointF.Empty, sf);