Estoy tratando de alinear un Label
y un NumericUpDown
por sus líneas de base de texto. Lo estoy haciendo en código, en lugar del diseñador. ¿Cómo obtengo la posición de la línea de base del texto?¿Cómo obtengo la posición de la línea base de texto en una etiqueta y un NumericUpDown?
10
A
Respuesta
13
// para representar el texto con la línea base en las coordenadas (pt.X, pt.Y):
Font myFont = Label1.Font;
FontFamily ff = myFont.FontFamily;
float lineSpace = ff.GetLineSpacing(myFont.Style);
float ascent = ff.GetCellAscent(myFont.Style);
float baseline = myFont.GetHeight(ev.Graphics) * ascent/lineSpace;
PointF renderPt = new PointF(pt.X, pt.Y - baseline));
ev.Graphics.DrawString("Render this string", myFont, textBrush, renderPt);
2
Para el control de etiqueta, puede obtener la posición de la parte inferior del texto de esta manera:
Suponiendo que el .TextAlign se establece en topLeft o TopCenter o topright, la parte inferior del texto en el control de etiqueta se se encontró por este método:
dim btmOfText as single
btmOfText = Label1.Font.GetHeight + Label1.Top
el método .GetHeight devuelve la altura, en píxeles de la fuente de corriente utilizada por la etiqueta.
Si .TextAlign es Medio o Inferior, entonces necesita hacer un cálculo un poco más complejo.
Este mismo método también funcionará con el control NumericUpDown.
Cuestiones relacionadas
- 1. Etiqueta JSP personalizada: ¿cómo obtengo el cuerpo de la etiqueta?
- 2. ¿Cómo obtengo la posición actual de intercalación?
- 3. ¿Cómo obtengo la posición de un resultado en la lista después de un pedido_por?
- 4. ¿Cómo configuro y obtengo la etiqueta de UIButtons?
- 5. ¿Cómo obtengo la posición de desplazamiento de un documento?
- 6. ¿Cómo obtengo la posición de un elemento hijo
- 7. Cómo insertar texto en la posición actual de intercalación en un área de texto
- 8. Alineación vertical con línea de base y áreas de texto
- 9. cambiando la posición de la etiqueta de texto detallada en la celda?
- 10. ¿Cómo obtengo la posición actual del cursor de la pantalla?
- 11. Alineación de la línea de base de las etiquetas de campo con la línea de base de texto en las entradas de texto
- 12. En NLTK, ¿cómo obtengo la concordancia de un texto?
- 13. ¿Cómo obtengo cada línea de un NSString?
- 14. ¿Cómo obtengo la posición de un control en relación con el cliente de la ventana?
- 15. Rastreando la posición de la línea de un lector
- 16. Obtener la posición de una etiqueta div/span
- 17. Salto de línea en la etiqueta
- 18. Insertar línea en la posición especificada de un archivo de texto
- 19. ¿Cómo obtengo la instancia de base de datos en griales?
- 20. ¿Cómo obtengo la expresión de un selector jQuery como texto?
- 21. Cómo determinar la posición del cursor de texto en Windows
- 22. ¿Cómo obtengo texto de marcador de posición en Firefox y otros navegadores que no son compatibles con la opción de etiqueta html5?
- 23. Obtener la posición del texto dentro de un elemento
- 24. ¿Cómo obtengo la posición absoluta de un clic de un evento onClick en el cuerpo?
- 25. ¿Cómo obtengo la etiqueta URL al analizar URL de solicitud?
- 26. ¿Cómo obtengo la posición de coordenadas después de usar jQuery arrastrar y soltar?
- 27. ¿Cómo evito que la etiqueta DIV comience una nueva línea?
- 28. Cómo obtengo el texto en una línea específica en un TextView
- 29. Posición de la etiqueta en el modo Org
- 30. Etiqueta y cuadro de texto en la misma línea usando css
GetHeight no devuelve la posición de la línea de base de la fuente, pero la posición de la parte superior de la Proxima linea. Las fuentes de Windoze están atornilladas de esta manera. No hay una respuesta simple aquí. – dar7yl
Observé que Stewbob no estaba contento con mi voto negativo de su respuesta, y que ha tomado represalias al rechazar algunas de mis publicaciones. Estoy tomando el camino correcto aquí y no escalando esto en una guerra total. – dar7yl
@ dar7yl ... Umm ... ¿quién eres tú? Veo que tienes comentarios para mi publicación, pero no entiendo la última. – Stewbob