2011-07-27 4 views
9

Я пытаюсь создать приложение Windows Forms с помощью C#.Как получить DPI в C# .NET?

Как получить DPI в .NET?

Я читал до этого, что есть DPIX и DPIY, которые можно использовать в .NET для получения текущего DPI.

Верно ли это?

Спасибо всем.

ответ

26

Используйте экземпляр класса Graphics. Вы получаете это, используя следующие в вашей форме (может быть в обработчике Load событий формы в):

float dx, dy; 

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

если новообращенный пикселей указать значение DPI использования, который DPI (DPix или DpiY), которые можно использовать? Или есть некоторые трюки, чтобы преобразовать значение пикселя в точки? Спасибо ... –

+0

Ну, пиксель - это место, поэтому он имеет координату X и Y. Используйте DpiX, чтобы найти координату X и DpiY, чтобы найти координату Y. То же самое относится к масштабированию материала - коэффициент масштабирования по горизонтали определяется с использованием DpiX, коэффициента вертикальной шкалы с использованием DpiY. –

+0

Хороший ответ, лучше, чем (найденный здесь) перегрузка метода scaleControl (или sth.). BTW, если вы хотите «шкалу относительно DPI по умолчанию», вам нужно разделить ее на «96.0f». –