2012-05-29 13 views
5

He creado un nuevo objeto Bitmap y ahora quiero dibujar algo de texto usando GDI +. Entonces llamo Graphics.DrawString (...).La configuración de Windows DPI afecta Graphics.DrawString

El problema es que el tamaño de la cadena depende de la configuración de DPI de Windows 7. ¿Hay alguna manera de hacer que mi texto se dibuje independientemente de la configuración de Windows?

PD: La configuración de DPI parece afectar solo al texto. Un rect, por ejemplo, tiene el mismo tamaño cuando se cambia el DPI ...

Respuesta

9

Acabo de encontrar la solución yo mismo: La clave es crear la fuente con el parámetro GraphicsUnit.Pixel. De esa forma, dibujar cadenas se independiza de la configuración de DPI del sistema.

4

Tiene razón en que el DPI afecta solo los elementos dibujables que se miden en unidades independientes del dispositivo. Las fuentes se suelen medir en Puntos, donde 1 punto = 1/72 de pulgada. Por lo tanto, una fuente de 10 pt tendrá el mismo tamaño en PULGADAS en cada resolución de pantalla y ocupará más o menos píxeles según la resolución de la pantalla y la densidad de píxeles.

Todo lo medido en píxeles (como líneas, formas, etc.) no se verá afectado por el DPI, pero el tamaño físico real variará según la resolución de la pantalla y la densidad de píxeles. Cambiar su código para medir fuentes en píxeles asegurará que el texto tenga el mismo tamaño de píxel en todas las configuraciones DPI de la pantalla, pero si imprimiera en una impresora, verá que el tamaño del texto variará según la resolución de la impresora.

Cuestiones relacionadas