Necesito dibujar una línea de una pulgada de largo en cualquier dispositivo con una referencia Graphics
. Necesito que sea una pulgada de largo independientemente de en qué se configure Transform
. Supongamos que el factor de escala de la transformación viene dado por scale
en ambas direcciones horizontal y vertical.GDI +: ¿Cómo se dibuja una línea de una pulgada de longitud en cualquier dispositivo en el que se dibuje?
Algunos código C++/CLI:
g->DrawLine(Pens::Black, 50.0f, 50.0f, 50.0f + oneInchEquivalent/scale, 50.0f);
Ahora que no fue difícil en absoluto! Ahora todo lo que tenemos que hacer es calcular oneInchEquivalent
.
g->DpiX
me da una distancia de lo que parece una pulgada en la pantalla, pero no en la impresora. Parece que en las impresoras, dibujar una línea de 100 unidades con g->PageUnit
configurado en GraphicsUnit :: Display me dará una línea de una pulgada de largo. Pero, realmente necesito que esto funcione independientemente de la configuración PageUnit
. ¡De hecho, cambiar PageUnit
cambiará el ancho del bolígrafo!
Edité: He aceptado tentativamente la única respuesta aquí, ya que está muy cerca de lo que estoy buscando.
He actualizado mi respuesta ahora con una muestra de impresión –