2009-06-17 7 views

答えて

0

これは、すべての画面対象にされています。私のマシン上で

int bpp = System.Windows.Forms.Screen.PrimaryScreen.BitsPerPixel; 
int wid = Screen.PrimaryScreen.WorkingArea.Width; 
int ht = Screen.PrimaryScreen.WorkingArea.Height; 

それは与える:

bpp=32 
width=1280 
height=740 
+2

Screenオブジェクトを操作する場合、複数のモニタで作業しているユーザがいることに注意してください。アプリケーションが現時点で表示されている画面を返す関数があります。 – Alexander

+0

確かに@アレクサンダー。それを指してくれてありがとう。 – TheVillageIdiot

+0

作業領域はどのようにDPI、したがってポイントに変換されますか? –

4

をあなたがのDPIを取得しようとしている場合画面は少しトリッキーです。実際のGraphicsオブジェクトを作成してそれをクエリする必要があります。例えば

、メインフォームのLoadイベントに:もちろん

using(Graphics g = CreateGraphics()) 
{ 
    _dpiX = g.DpiX; 
    _dpiY = g.DpiY; // In practice usually == dpiX 
    _points = _dpiX/72.0f; // There are 72 points per inch 
} 

ほとんどのモニタは、実際のDPI偽る、常に返す72または96、または実際にした場合、大きなフォントが120を有効にしているとき物理的なインチを画面にマッピングしたいのですが、実際にユーザーの助けを借りてキャリブレーションする必要があります。測定するラインを1インチに選ぶようにします。

+0

私は '_points'に至りました。今、 '_points'を' pixels'にどのように関連づけていますか? – jp2code

関連する問題