2012-05-29 11 views
5

新しいBitmapオブジェクトを作成しましたが、GDI +を使用してテキストを描画します。 私はGraphics.DrawString(...)を呼び出します。Windows DPIの設定がGraphics.DrawStringに影響する

問題は、文字列のサイズがWindows 7のDPI設定に依存することです。 テキストの描画をウィンドウの設定から独立させる方法はありますか?

PS:DPI設定はテキストのみに影響するようです。たとえば、rectは、DPIを変更するときに同じサイズの画像を表示します。

答えて

9

ちょうど解決策が見つかりました。 重要なのは、GraphicsUnit.Pixelパラメータでフォントを作成することです。その方法では、文字列を描画することはシステムのDPI設定から独立して行われます。

4

DPIがデバイスに依存しない単位で測定されたドロウアブル項目にのみ影響するという点では正しいです。フォントは通常、1ポイント= 1/72インチのポイントで測定されます。したがって、10ptフォントは、各画面解像度でINCHESで同じサイズになり、画面解像度とピクセル密度に応じて、より多くのまたはより少ないピクセルを占有します。

画素(線、シェイプなど)で測定されたものはすべてDPIの影響を受けませんが、実際の物理サイズは画面解像度とピクセル密度によって異なります。フォントをピクセル単位で測定するコードを変更すると、実際にはすべての画面のDPI設定でテキストのピクセルサイズが同じになりますが、プリンタに印刷する場合は、プリンタの解像度によってテキストサイズが異なることがあります。

関連する問題