2016-11-02 8 views
1

別のデバイス/コンピュータで開いたときに自分のプログラムのフォントが変更されるのはなぜですか?ここでは、別のデバイスに開いたときの効果と、元のように見えるものを示します。左側は別のデバイスで開かれたときの外観で、右側は正しいものです。どんな助力も非常に感謝しています。色は毎回変わり、不思議なことがあればタイマーで制御されます。別のコンピュータに開いたときにフォントが変更される

enter image description here

+0

は、TrueTypeフォントの選択したフォントを属し? – duDE

+0

@duDEこのプログラムで使用しているフォントは「Monotype Corsiva」だと思います。 –

+1

これは一般的ではないフォントで、開発者システムにインストールしています。今度はあなたのプログラムを別のシステムに持って行きます。フォントはここにはありません。そのため、一般的なTrueTypeフォント(より良い選択肢)を使用するか、この "Monotype Corsiva"をターゲットシステムにインストールします。 – duDE

答えて

2

割り当てられているフォントは、文字列をレンダリングするために、デフォルトのフォントファミリを使用して、ターゲットシステム上で終了していない場合。

また、Fontをフォームに明示的に割り当てることはありません。DefaultFontを使用します。これはを返します。これはシステム設定によって異なり、システムによって異なる場合があります。すべてのシステムで似たフォントを使用する必要がある場合は、フォームのフォントを明示的にFontに割り当てます。

embed the fontをアプリケーションに追加できます。また、アプリケーションにインストーラーが付属している場合は、フォントをターゲットマシンに展開することもできます。たとえば、あなたがこの方法フォントを使用することができ、あなたのプロジェクトにフォントを追加し、そのCopy To Output DirectoryCopy Alwaysに設定:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Dim fontCollection = New PrivateFontCollection() 
    fontCollection.AddFontFile(Path.Combine(Application.StartupPath, "MyFont.ttf")) 
    Dim font = New Font(fontCollection.Families(0), 12) 
    Me.Font = font 
End Sub 
+0

あなたが接続したリンクはC#で推測されています...そして私はVBに変換するためにC#100%を実際には知りません。ヘルプ –

+1

私はVB.NETの例を追加しました。 –

+0

これはできますが、フォントファイルは自分のリソースにありますか? –

関連する問題