2011-07-27 22 views
9

Estoy intentando crear una aplicación de Windows Forms usando C#.¿Cómo obtener DPI en C# .NET?

¿Cómo obtengo el DPI en .NET?

He leído antes que hay DPIX y DPIY, que se pueden usar en .NET para obtener el DPI actual.

¿Es correcto?

Gracias a todos.

Respuesta

26

Utilice una instancia de la clase Graphics. Usted consigue esta usando (podría ser en el manejador de eventos Load de forma) lo siguiente dentro de su formulario:

float dx, dy; 

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

si píxel convertido al punto de uso valor de PPP, que DPI (DPix o DpiY) que se pueden utilizar? ¿O hay algunos trucos para convertir un valor de píxel en puntos? Gracias ... –

+0

Bueno, un píxel es una ubicación, por lo que tiene una coordenada X y una Y. Usa DpiX para encontrar la coordenada X y DpiY para encontrar la coordenada Y. Lo mismo se aplica al escalado: el factor de escala horizontal se determina usando DpiX, el factor de escala vertical usando DpiY. –

+0

Buena respuesta, mejor que la sobrecarga (encontrada en otra parte) del método 'scaleControl' (o algo así). Por cierto, si quieres la "escala relativa al DPI por defecto", solo necesitas dividir esto por '96.0f'. –

Cuestiones relacionadas