2011-07-27 5 views
9

私はC#を使用してWindowsフォームアプリケーションを構築しようとしています。C#.NETでDPIを取得するには?

.NETでDPIを取得するにはどうすればよいですか?

DPIXとDPIYがありますが、これは現在のDPIを取得するために.NETで使用できます。

これは間違いありませんか?

ありがとうございます。

答えて

26

Graphicsクラスのインスタンスを使用します。変換画素が使用でき、使用DPI値、DPI(DPIXまたはDpiY)を指すように場合

float dx, dy; 

Graphics g = this.CreateGraphics(); 
try 
{ 
    dx = g.DpiX; 
    dy = g.DpiY; 
} 
finally 
{ 
    g.Dispose(); 
} 
+0

:あなたは(フォームのLoadイベントハンドラにすることができる)フォーム内で次を使用して、これを取得しますか?または、ピクセル値をポイントに変換するいくつかのトリックがありますか?ありがとう... –

+0

まあ、ピクセルは場所なので、X座標とY座標があります。 DpiXを使ってX座標を求め、DpiYを使ってY座標を求めます。同様のことがスケーリングの対象に適用されます。水平方向のスケール係数は、DpiYを使用する垂直方向のスケール係数であるDpiXを使用して決定されます。 –

+0

良い答えは、 'scaleControl'メソッド(またはそのようなsth)の(elswhereの)オーバーロードよりも優れています。ところで、 "デフォルトDPIに相対的なスケール"が必要な場合は、これを '96.0f'で分割するだけです。 –

関連する問題