C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

C# DrawStringに関する質問

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■84746 / inTopicNo.1)  C# DrawStringに関する質問
  
□投稿者/ 新人研修A (1回)-(2017/07/31(Mon) 19:21:27)

分類:[C#] 

Visual Studio C# でグラフ描画のプログラムを作成しています。

グラフの枠線をDrawLineで描画させてます。

縦軸の目盛名に関しては90°回転させて表示させたいと思ってます。

DrawStringメソッドで文字をグラフ内に表示させて gra.RotateTransform(90) で回転させてしまうと

picture領域ごと回転して、グラフの枠線も回転してしまいます。

文字だけを回転ということはできるのでしょうか?


また、目盛名は

gra.DrawString("Position [mm]", FN1, Brushes.Black, 255, 280, stringFormat);

のようにDrawStringメソッドで描かせていますが、Position のところに変数を入れることは

できるのでしょうか?

初歩的な質問で申し訳ないです。
引用返信 編集キー/
■84747 / inTopicNo.2)  Re[1]: C# DrawStringに関する質問
□投稿者/ 魔界の仮面弁士 (1368回)-(2017/07/31(Mon) 19:25:21)
No84746 (新人研修A さん) に返信
> グラフの枠線をDrawLineで描画させてます。
> 縦軸の目盛名に関しては90°回転させて表示させたいと思ってます。
> DrawStringメソッドで文字をグラフ内に表示させて gra.RotateTransform(90) で回転させてしまうと
> picture領域ごと回転して、グラフの枠線も回転してしまいます。

DrawLine する前は回転させないでおき(あるいは ResetTransform しておく)、その後の
DrawString する前にて TranslateTransform & RotateTransform すれば良いのでは。
引用返信 編集キー/
■84751 / inTopicNo.3)  Re[1]: C# DrawStringに関する質問
□投稿者/ shu (1045回)-(2017/08/01(Tue) 08:05:10)
No84746 (新人研修A さん) に返信

> gra.DrawString("Position [mm]", FN1, Brushes.Black, 255, 280, stringFormat);
>
> のようにDrawStringメソッドで描かせていますが、Position のところに変数を入れることは
>
> できるのでしょうか?
>


var val = 1;
var a = $"Position[{val}]";
var b = String.Format("Position[{0}]", val);

C#のバージョンによってaは使えません。
引用返信 編集キー/
■84757 / inTopicNo.4)  Re[2]: C# DrawStringに関する質問
□投稿者/ ぶなっぷ (120回)-(2017/08/01(Tue) 14:03:21)
引数の並びからして、DrawString()はFormのGraphicsクラスのメンバかな?

Graphics.RotateTransform()
は解除しない限り、スタックされます。

(例) 以下の2行を実行後、DrawString()すれば、180度の回転
  gra.RotateTransform(90);
  gra.RotateTransform(90);

解除するには、
Graphics.ResetTransform()
を呼び出してください。

結論です。
  gra.RotateTransform(90);
  gra.DrawString();           // 引数省略
  gra.ResetTransform();
  gra.DrawLine();             // 引数省略
のように呼び出せば、DrawString()で書いた文字だけが回転するはずです。

引用返信 編集キー/
■84764 / inTopicNo.5)  Re[3]: C# DrawStringに関する質問
□投稿者/ 新人研修A (2回)-(2017/08/01(Tue) 18:46:26)
No84757 (ぶなっぷ さん) に返信
> 引数の並びからして、DrawString()はFormのGraphicsクラスのメンバかな?
>
> Graphics.RotateTransform()
> は解除しない限り、スタックされます。
>
> (例) 以下の2行を実行後、DrawString()すれば、180度の回転
> gra.RotateTransform(90);
> gra.RotateTransform(90);
>
> 解除するには、
> Graphics.ResetTransform()
> を呼び出してください。
>
> 結論です。
> gra.RotateTransform(90);
> gra.DrawString(); // 引数省略
> gra.ResetTransform();
> gra.DrawLine(); // 引数省略
> のように呼び出せば、DrawString()で書いた文字だけが回転するはずです。
>

皆様、ご回答有難う御座います。無事解決しました!
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ