Есть ли простой способ выровнять текст вправо и в центре (вместо значения по умолчанию слева)?Как выровнять текст, нарисованный с помощью SpriteBatch.DrawString?
14
A
ответ
16
Первым шагом является измерение строки с использованием SpriteFont.MeasureString()
.
Тогда, например, если вы хотите нарисовать его слева от определенной точки, а не вправо, как по умолчанию, тогда вам нужно вычесть ширину X измерения из исходного текста. Если вы хотите, чтобы быть в центре, то вы можете использовать половину измерения и т.д.
15
Я использую этот код:
[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();
Смежные вопросы
- 1. Как отредактировать текст, нарисованный Canvas.drawText()?
- 2. Получить текст, нарисованный ExtTextOut
- 3. Как выровнять текст с помощью jQuery?
- 4. Как динамически выровнять текст с помощью transform.position
- 5. Как выровнять текст с помощью CSS формы
- 6. Как удалить нарисованный текст в createJS
- 7. Как выровнять текст и текст?
- 8. Как сместить нарисованный текст вверху на UIView?
- 9. Как выделить за текст, нарисованный DrawTextEx
- 10. Выровнять текст внутри div с помощью CSS?
- 11. Выровнять текст снизу с помощью внешней формы?
- 12. Как добавить цвет фона в нарисованный текст
- 13. Как выровнять текст с изображением?
- 14. Как выровнять текст с рисунком?
- 15. Выровнять текст с помощью ввода и div
- 16. Вертикально выровнять текст с помощью css
- 17. Выровнять текст вправо с помощью AbcPdf 9
- 18. Как выровнять текст UITableView?
- 19. Как вертикально выровнять текст с помощью кнопки с выделенным фоном?
- 20. Как выровнять текст рядом с иконкой с помощью CSS?
- 21. Как выровнять текст?
- 22. как выровнять текст влево?
- 23. Как выровнять этот текст?
- 24. Как правильно выровнять текст?
- 25. Как выровнять текст в промежутке
- 26. Как выровнять текст с обеих сторон (оправдано)
- 27. Вертикально выровнять текст внутри круга SVG
- 28. Вертикально выровнять текст
- 29. Текст, нарисованный над QT QGLWidget выглядит искаженным
- 30. Как Выровнять текст в asp.net