(C#)如何获得我的屏幕的像素关系?

时间:2009-06-17 06:43:56

标签: c# winforms fonts gdi+

据我所知,关系点与像素的关系取决于屏幕分辨率。那么如何在运行时在c#中计算它?

由于

2 个答案:

答案 0 :(得分: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英寸的线。

答案 1 :(得分: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