投稿者:田中 充 投稿日:2023/08/01(Tue) 15:08:06 No.2860
ラベルを縦書き表示するために、「あ[改行]い[改行]う[改行]」という文字列を設定しているのですが、改行幅が大きいため、しっくりきません。
縦書き用に改行幅を狭くする方法はありませんでしょうか?
投稿者:アーク 投稿日:2023/08/04(Fri) 20:44:48 No.2861
田中 充 さん、こんばんは。アークです。
ラベルに限らず、また、プロデルにも限らず縦書きをサポートしているコントロールは殆ど在りません。それでも縦書に拘るなら田中さんの方法が一番手軽です。
改行で疑似的に縦書きした場合、字間に見えるのは行間です。ラベルではその何方も指定する事ができません。ラベルで改行した場合の送りは文字領域のようです。文字領域の本当の呼び名は忘れましたが、一文字が占めるエリアの事です。このエリア内に文字をデザインするのですが、それを目一敗使うフォントも有れば、余裕をもってデザインされたフォントも有ります。
同様の質問で文字間がキチキチなので広げたいというのは良く見掛けるのですが、田中さんの場合はその逆なのでこじんまりとしたフォントを使用したいのでしょうか。例えが「MS UI Gothic」を使用したならキチキチになると思います。
もし、本格的に解決したいならラベルを継承したクラスを作成して、それを拡張する事になりますが、それができるなら質問していないと思われるので、現実的にはキャンバスを使用する事をお薦めします。プロデルのキャンバスは縦書きもサポートしていますが、キャンバス内に思い通りに文字を並べるのは簡単では無いようです。参考までに私が年賀状の宛名書きソフトを作成した時に使用した方法は、文字の大きさから次の文字の位置を計算して、一文字づつキャンバス上に配置していきました。事前に計算できるので文字数が多い時にはサイズを下げるなどの対処も可能です。
参考になれば幸いです。
投稿者:田中 充 投稿日:2023/08/09(Wed) 09:02:09 No.2864
アークさん、こんにちは。
質問に対する、返信ありがとうございました。
フォントで調整する件、参考にして調整してみます。
キャンパスは大変なので、どうしてもという場合は、文字毎に分解して1文字づつラベルを配置するようにいたします。
ありがとうございました。
投稿者:ゆうと 投稿日:2023/08/15(Tue) 15:05:44 No.2865
こんにちは。
以前キャンバスでサンプルを作ったことがありましたので、参考にしてください。
フォント名の先頭に「@」を付けることで縦書きに適したフォントになります。
https://produ.irelang.jp/bbs/progbbs/forump.php?mode=viewcode&id=98
- WebForum -