locked
同じフォント設定をしてもVB、VCで作成したアプリとフォントの見た目が同じにならない RRS feed

  • 質問

  • 開発環境は以下なります。
    アプリケーション:VS2010、Silverlight5
    OS:WinXP SP3
    ブラウザ:IE8

    VB、VCで作成した既存アプリをWEB化対応ということでSilverlight5で
    開発中に上記タイトルの問題が発生して、どうすべきが困っています。

    移植元のアプリと同じ見た目にするため同じフォント名、フォントサイズを
    Silverlightで設定するとフォントの見た目がかなり異なります。
    例 フォント名=MS Pゴシック、フォントサイズ=20

    試しにVS2010のVBやVCのラベルやテキストボックスに同じフォントを設定すると、
    移植元と同じ見た目のフォントが表示されますが、同じことをSilverlightで
    行うとゴシック体らしくない細い文字が表示されてしまい、同じVS2010内でも
    VB、VCとSilverlightでは同じ見た目のフォント表示になりません


    Silverlightで画面デザインした場合、同じフォントを設定しても
    VC,VBでデザインした画面とフォントの見た目が同じにはならないものなのでしょうか?


    こちらで確認したことは例えばフォント名を同じにしてVC、VBで
    フォントサイズ=20だった場合、Silverlightのフォントサイズを26くらいにすると
    大体同じ見た目になります。(それでも若干長さが異なる)

    Silverlightでは同じフォント設定でVC、VBと同じ見た目のフォントを
    表示することはできるのでしょうか?
    以上よろしくお願いします。


    2012年8月1日 2:42

すべての返信

  • このあたりは参考になりませんか?

    WPFにおけるフォントサイズの指定

    http://d.hatena.ne.jp/Yamaki/20091215/1260947088

    • 回答の候補に設定 山本春海 2012年8月22日 5:23
    2012年8月1日 4:00
  • 早速のアドバイスありがとうございます。
    教えていただいたHPを要約すると、

    WindowsフォームとWPF、Silverlightではフォントサイズの単位が異なり、
    Windowsフォームのフォントサイズの単位はpt。
    WPF、Silverlightのフォントサイズの単位はpx。

    このうち、WPFにはフォントサイズをWindowsフォームにあわせることができる、
    FontSizeConverter()というものが用意されているが、Silverlightには
    そういうものが一切無いので、もし実現するのであれば自作するしかない、
    ということですね。

    訂正、以下の部分は私の確認不足の勘違いでした。
    >フォントの種類(ゴシックか明朝かPか否か)やフォントのサイズ別(1~99)と
    >網羅するパターンが多く、一律に決まった定数を掛ければ、Silverlightで
    >簡単にWindowsフォームのフォントサイズを実現できる、というわけではない
    >ということが分かりました。
    >ptとpxの対応がptから計算で全部だせれば、
    >自作も可能なのかも知れません。


    フォントタイプをWindowsフォーム、Silverlightであわせれば
    一律で1.33辺りの値をSilverlightのフォントサイズにかけてやると、
    完全一致とはいかないが、かなり近い感じにフォントの見た目を
    Windowsフォームに合わせられる。ということですね。


    以上、ありがとうございました。

    2012年8月1日 6:09