« [P16] PowerShell:関数の引数および関数の戻り値が正しく受け取れず、おかしくなってしまう場合の対処法 | トップページ | 窓の外は空(目次) »

[P17] WPF: テキスト(日本語)の縦書き(宛名書きのみ)

   WPFでのテキスト(日本語)の縦書きに関しては、フォントの回転等もからんでうまくいかないようで、いろいろむずかしい話があるようです。

例えば、

    http://ii.cocolog-nifty.com/sasurai/2007/11/wpf_d92b.html

    http://d.hatena.ne.jp/las/searchdiary?word=Canvas

 
  私は、自分の身の回りの、ごく普通の需要を満たしているだけの末端プログラマーなので、縦書きは「ハガキ」「封筒」の宛名書き程度しか問題になりません。

   これだけなら、以下のようにすれば何とかなるのではないでしょうか。

印刷で問題になると思いますので、Canvas 上に配置するとして、TextBlock を縦長にします。

   TextBlock  txJusho = new TextBlock();
   txJusho.Width = 30;//一文字程度の幅
   txJusho.Height = 400;//縦長
   txJusho.TextAlignment = TextAlignment.Center;//行の中央に 
   txJusho.Text = "東\n京\n都\n千\n代\n田\n区\n";
      //一文字ごとに改行することによって縦書きにする。

もっといい方法があるのかな。
とりあえず、私はハガキ・封筒の宛名印刷は、これで対処しました。

但し、「2-5-3」 などの 「-」は、回転が必要になってきますが、
外字で「|」を作ればいいのではないでしょうか。
 「|」に関する限り、用意されている縦線は、実際に印刷してみると、
どうも長さがぴったりせず、私は従来から外字として適当な長さのものを作っておき、
印刷直前でこの外字に変換するという処理をしてまいりました。
私は、数字も漢字に変換しておりますが。

ちなみに、外字を表示するにはコントロールごとにその指示をする必要があるようです。

       
textBloc.FontFamily = new FontFamily
                          ("file:///C://Windows/Fonts/#EUDC");

  [注] Visual Studio 2010) / .NET Framework 4 では、こうしないと外字が表示されない。
    
textBlock.FontFamily = new FontFamily("EUDC"); は、不可。
    (理由は、よくわかりません。)


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
目次に戻る ・・・・ 左欄のカテゴリー 【パソコンの窓】 をクリック
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

|

« [P16] PowerShell:関数の引数および関数の戻り値が正しく受け取れず、おかしくなってしまう場合の対処法 | トップページ | 窓の外は空(目次) »

コメント

コメントを書く



(ウェブ上には掲載しません)




« [P16] PowerShell:関数の引数および関数の戻り値が正しく受け取れず、おかしくなってしまう場合の対処法 | トップページ | 窓の外は空(目次) »