トップ回答者
VB.NETのGraphicsのDrawString縦書きについて

質問
回答
-
もしかすると、Graphics の DrawString で簡単に実現するのは難しいのではないかと思います。
1つの方法として、座標の計算が面倒ですが、描画するときに 1 文字ずつ文字列に対してループし縦書きとならない文字については回転させたり Flags.DirectionVertical ではない文字描画を行うように処理を行う方法があります。
また別の方法として、Win32 の DrawText を使用すると 1 文字ずつ文字を判定せずに実現できるかもしれません。
確認したところ少なくとも「℃」「℡」については正しく縦書きの描画が行えておりました。
以上、参考になりましたら幸いです。- 編集済み kenjinoteMVP 2016年5月31日 6:21
- 回答の候補に設定 星 睦美 2016年6月2日 2:23
- 回答としてマーク 星 睦美 2016年7月12日 2:46
すべての返信
-
もしかすると、Graphics の DrawString で簡単に実現するのは難しいのではないかと思います。
1つの方法として、座標の計算が面倒ですが、描画するときに 1 文字ずつ文字列に対してループし縦書きとならない文字については回転させたり Flags.DirectionVertical ではない文字描画を行うように処理を行う方法があります。
また別の方法として、Win32 の DrawText を使用すると 1 文字ずつ文字を判定せずに実現できるかもしれません。
確認したところ少なくとも「℃」「℡」については正しく縦書きの描画が行えておりました。
以上、参考になりましたら幸いです。- 編集済み kenjinoteMVP 2016年5月31日 6:21
- 回答の候補に設定 星 睦美 2016年6月2日 2:23
- 回答としてマーク 星 睦美 2016年7月12日 2:46
-
基本的に簡単な方法はないと思います。少し探してみましたが、以下のように一文字ずつ描くことで何とかなるかもしれません。
Drawstring up to down textdirection right (like chinese old style)
http://stackoverflow.com/questions/24970839/drawstring-up-to-down-textdirection-right-like-chinese-old-style★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/