C'è un modo semplice per allineare il testo a destra e al centro (invece di default a sinistra)?Come allineare il testo disegnato da SpriteBatch.DrawString?
14
A
risposta
16
Il primo passaggio consiste nel misurare la stringa utilizzando SpriteFont.MeasureString()
.
Quindi, ad esempio, se si desidera disegnarlo a sinistra di un determinato punto, anziché a destra come predefinito, è necessario sottrarre la larghezza X della misurazione dall'origine del disegno di testo. Se si vuole che sia centrato, quindi è possibile utilizzare la metà della misura, ecc
15
io uso questo codice:
[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();
Problemi correlati
- 1. Come a sinistra allineare il testo in Annota da ggplot2
- 2. Come allineare il testo UILabel dal basso?
- 3. Come allineare il testo all'inizio di TextView?
- 4. Come allineare il testo in Android
- 5. Allineare il testo in golang con Truetype
- 6. Allineare il testo in JLabel a destra
- 7. allineare il testo a destra in UIPickerView
- 8. allineare il testo in di UITableView Footer
- 9. allineare il centro di testo con Android
- 10. Come allineare un testo svg in javascript?
- 11. Come allineare il testo di input del campo giusto?
- 12. Come allineare il testo QLabel al bordo destro dell'etichetta
- 13. come allineare il testo verticalmente al centro in Android
- 14. Come allineare l'output del testo in python?
- 15. Come allineare il testo del pulsante a sinistra?
- 16. Come allineare il testo all'interno del TextView in Android?
- 17. come allineare il testo in CheckedTextView con checkbox
- 18. Come allineare verticalmente il testo multilinea all'interno di un elenco?
- 19. Come allineare il testo nella parte inferiore dell'etichetta
- 20. come allineare verticalmente il testo accanto a un'immagine fluttuante?
- 21. Come allineare verticalmente il testo della mia barra di stato?
- 22. Come posso allineare il testo direttamente sotto un'immagine?
- 23. Come possiamo allineare verticalmente il testo nella casella di modifica?
- 24. Come allineare il testo centrale nei pulsanti personalizzati?
- 25. Come allineare il testo all'interno di un JTextField?
- 26. Come allineare il testo al centro in etichetta asp
- 27. ottenere il punto di tocco a Arc disegnato da CGContext
- 28. Allineare un testo di UIButton?
- 29. Come posso allineare il testo a sinistra e il testo a destra nella stessa riga?
- 30. Come faccio ad allineare il testo da python in colonne nel mio terminale?