Estoy usando la clase .NETCF (Windows Mobile) Graphics
y el método DrawString()
para representar un solo carácter en la pantalla.Salida de texto del centro de Graphics.DrawString()
El problema es que parece que no puedo centrarlo correctamente. No importa lo que establezca para la coordenada Y de la ubicación del procesamiento de cadenas, siempre sale más bajo que eso y cuanto mayor es el tamaño del texto, mayor es el desplazamiento en Y.
Por ejemplo, en el tamaño del texto 12, el desplazamiento es aproximadamente 4, pero a los 32 años el desplazamiento es de aproximadamente 10.
Quiero que el carácter para tomar verticalmente la mayor parte del rectángulo que está siendo aspirado y se centra horizontalmente. Aquí está mi código básico. this
hace referencia al control de usuario que está siendo aspirado.
Graphics g = this.CreateGraphics();
float padx = ((float)this.Size.Width) * (0.05F);
float pady = ((float)this.Size.Height) * (0.05F);
float width = ((float)this.Size.Width) - 2 * padx;
float height = ((float)this.Size.Height) - 2 * pady;
float emSize = height;
g.DrawString(letter, new Font(FontFamily.GenericSansSerif, emSize, FontStyle.Regular),
new SolidBrush(Color.Black), padx, pady);
Sí, ya sé que es el control de etiqueta que podría utilizar en su lugar y establecer el centrado con eso, pero en realidad es necesario para hacer esto manualmente con el Graphics
clase.
gracias por mostrar la otra forma de dibujar cosas realmente me ayuda con un problema de alineación del centro resulta TextRenderer.DrawText es más preciso que un simple e.graphics.drawstring muchas gracias, vota por mí :) –