トップ回答者
DirectWriteを利用した縦書き表示方法

質問
-
はじめまして。
現在Windows Store Appを勉強しているものです。簡単なテキストビュアを作成していますが、どうも縦書き関連の表示が難しくてここに書きました。
今SharpDXとSurfaceSourceを利用してDirect2D ContextのDrawTextメソッドでテキストを表示しています。縦書きにするために一文字ずつ縦に並べるという力業で実現していますが、句読点やダッシュ記号などを表示するとき問題があります。
問題は句読点やダッシュ記号がすべて横書きの時と同じように左下や横向きに表示されてしまうことです。これらの記号を縦書き用の文字に出力するためにはどうすればいいでしょうか。
よろしくお願いします。
回答
-
どうやらDrawTextだけでは縦書き表示はできないみたいです。DrawGlyphを利用したサンプルがあったので、これをもって自己解決とします。
返信ありがとうございました。
サンプルのリンク:http://code.msdn.microsoft.com/windowsapps/DirectWrite-vertical-text-c16efdcb
- 回答としてマーク Kichang Kim 2012年11月30日 7:14
すべての返信
-
どうやらDrawTextだけでは縦書き表示はできないみたいです。DrawGlyphを利用したサンプルがあったので、これをもって自己解決とします。
返信ありがとうございました。
サンプルのリンク:http://code.msdn.microsoft.com/windowsapps/DirectWrite-vertical-text-c16efdcb
- 回答としてマーク Kichang Kim 2012年11月30日 7:14
-
Windows8.1 previewでは IDWriteTextFormat::SetReadingDirectionでDWRITE_READING_DIRECTION_TOP_TO_BOTTOMを指定すれば、縦書きで表示できるようです
http://code.msdn.microsoft.com/windowsapps/DWriteVerticalHelloWorld-eaab446f