据我所知,关系点与像素的关系取决于屏幕分辨率。那么如何在运行时在c#中计算它?
由于
答案 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