2012-05-11 4 views
0

私はグラフィックを使用しています。文字列をよく...文字列を描画します。1つのPCでDrawStringの幅が広い

フォントファミリ、フォントサイズ、フォントスタイル、グラフィックユニットを指定します。

すべては50台のコンピュータでうまく動作しますが、1台ではフォントが「大胆」になります。 文字は同じ高さですが、何らかの理由で「ピクセル」が幅の2倍です。

これはコードで修正できますか?
これはWindowsの設定を使用して修正できますか?

+0

を変更することで、コードに変更することができますが、1台のPC(太字ではない、すなわち版)に不足しているベースフォントですか? – Oded

+0

コントロールパネルでさまざまなテキストのDPI設定を指定できます。実際にはひもで実際に間違って描画されていますか? –

+0

井戸..私は最終的に設定して問題を再現できました グラフィック。TextRenderingHint = Drawing.Text.TextRenderingHint.ClearTypeGridFit は、マシンのデフォルト設定に問題があるようです。 –

答えて

0

:あなたのような、Graphics.MeasureStringを呼び出すことによって、それを描画する前に、テキストの幅を取得することができますスタンダードに。

またgraphic.TextRenderingHint

1

すべてのマシンに同じ適用可能なフォントがインストールされていることと、ウィンドウのパーソナライゼーション設定が同じであることを確認することで解決できますが、最終的にDrawStringが常に同じ幅のテキストを描画するすべてのマシン。フォントは可変であるため、フォントを選択すると、使用される実際のフォントが各コンピュータで異なる場合があります。可能な場合は、さまざまな幅のテキストを処理する方法でアプリケーションをコーディングする必要があります。私はクリアタイプから「スクリーンフォントの縁を滑らかに次のメソッドを使用します」に変更、それを修正することができました

Dim textSize As SizeF = graphic.MeasureString("text to measure", Me.Font, Me.ClientRectangle.Width) 
関連する問題