none
テキストボックスの行間 RRS feed

  • 質問

  • いつもお世話になります。
    VisualC#2010、Windows7での動作について質問があります。
    開発環境をWindowsXPからWindows7に移行したところ、WPFのテキストボックスの行間が、妙に開くようになりました。
    設定したいのですが、何の値で設定するのでしょうか?

    行間に関係ありそうな値として、msdnで、
    DefaultStyleKey
    ExtentHeight
    FontFamily
    FontSize
    FontStretch
    Style
    TextAlignment
    を見てみたのですが、どれも違うようでした。
    ご存じの方はいらっしゃいませんか?

    2011年7月30日 5:12

すべての返信

  • Vista以降に導入されたメイリオフォントのせいだと思います。

    <Label Content="{Binding Path=FontFamily,ElementName=textBox1}" />
    
    のようにして、実際に適用されているフォントの種類を見てみるといいです。

    TextBoxのFontFamilyをデフォルトのままにしているとメイリオが優先される環境ではメイリオで描画されるようになります。
    #XPでは標準ではMS ゴシックとかになっているはず。Vista以降でもテーマによってはMS ゴシックの場合があります。

    ですから、XPまでと同じような行間で表示したければ、FontFamilyを"MS ゴシック"や"Meiryo UI"などとしてやると似たような行間で表示できます。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
    2011年7月30日 7:00
  • gekkaさん、アドバイスありがとうございます。
    なるほど。
    もともと、そのxamlでは、
    <TextBox AcceptsReturn="True" AcceptsTab="True" TextWrapping="WrapWithOverflow" FontSize="14" FontFamily="Meiryo" />
    のように、フォントにメイリオを指定していました。
    ターゲットマシンのWindowsXPにもメイリオを入れていました。
    開発マシンのWindowsXPにもメイリオを入れてありました。
    今回、開発マシンをWindows7に変えただけなので、全部メイリオだと思うのですが…。
    むずかしいです…。
    でもアドバイスにはたいへん感謝します。
    2011年7月30日 9:17