¿Hay una manera fácil de alinear texto a la derecha y al centro (en lugar de a la izquierda)?¿Cómo alinear el texto dibujado por SpriteBatch.DrawString?
14
A
Respuesta
16
El primer paso es medir la cadena usando SpriteFont.MeasureString()
.
Luego, por ejemplo, si desea dibujarlo a la izquierda de un determinado punto, en lugar de a la derecha como es el valor predeterminado, debe restar el ancho X de la medición del origen del dibujo de texto. Si desea que se centra, entonces se puede utilizar la mitad de la medida, etc.
15
utilizo este código:
[Flags]
public enum Alignment { Center=0, Left=1, Right=2, Top=4, Bottom = 8 }
public void DrawString(SpriteFont font, string text, Rectangle bounds, Alignment align, Color color)
{
Vector2 size = font.MeasureString(text);
Vector2 pos = bounds.GetCenter();
Vector2 origin = size*0.5f;
if (align.HasFlag(Alignment.Left))
origin.X += bounds.Width/2 - size.X/2;
if (align.HasFlag(Alignment.Right))
origin.X -= bounds.Width/2 - size.X/2;
if (align.HasFlag(Alignment.Top))
origin.Y += bounds.Height/2 - size.Y/2;
if (align.HasFlag(Alignment.Bottom))
origin.Y -= bounds.Height/2 - size.Y/2;
DrawString(font, text, pos, color, 0, origin, 1, SpriteEffects.None, 0);
}
-3
SpriteFont mFont;
SpriteBatch mSprite;
mSprite.Begin();
mSprite.DrawString(mFont, "YourText", new Vector2(graphicsDevice.Viewport.Width/2 - mFont.MeasureString("YourText").Length()/2, 0), Color.White, 0, new Vector2(0, 0), 1f, SpriteEffects.None, 0f);
mSprite.End();
Cuestiones relacionadas
- 1. ¿Por qué el texto dibujado en un panel desaparece?
- 2. ¿Cómo alinear verticalmente un texto?
- 3. Cómo alinear texto en android
- 4. QPainter :: rotar deshabilita el antialiasing de texto dibujado
- 5. obtener el punto táctil en el arco dibujado por CGContext
- 6. Centrar/alinear el texto medio con PIL?
- 7. ¿Cómo justificar alinear el texto en el lienzo html5?
- 8. ¿Por qué ie8 centrar el texto cuando el texto-alinear se establece a la izquierda?
- 9. CSS para alinear con el texto
- 10. Cómo alinear texto en RichTextBox C#?
- 11. Cómo alinear verticalmente vanos con el texto y la imagen
- 12. UILabel Alinear texto al centro
- 13. ¿Cómo alinear verticalmente texto en tipo de entrada = "texto"?
- 14. ¿Cómo alinear verticalmente el texto al centro en HTML?
- 15. ¿Cómo puedo alinear el texto directamente debajo de una imagen?
- 16. ¿Cómo alinear el texto dentro de TextView en Android?
- 17. ¿Cómo alinear el texto del botón a la izquierda?
- 18. ¿Cómo puedo alinear correctamente el texto en una columna DataGridView?
- 19. ¿Cómo alinear el texto a la parte superior de TextView?
- 20. Pobre anti-aliasing de texto dibujado en lienzo
- 21. Alinear texto verticalmente en Navbar
- 22. IE7 texto-alinear no funciona
- 23. ¿Por qué mi círculo dibujado por CGContext chupa?
- 24. CSS Alinear verticalmente el texto en el encabezado
- 25. android: cómo alinear el mensaje en alertDialog?
- 26. Alinear texto en JLabel a la derecha
- 27. Alinear texto con Java Graphics 2d
- 28. Alinear texto dentro de un diagrama
- 29. justificar texto-alinear pero a la derecha?
- 30. columna de grilla pulida (texto-alinear)