Có cách nào dễ dàng để căn chỉnh văn bản ở bên phải và giữa (thay vì mặc định bên trái) không?Làm cách nào để căn chỉnh văn bản được vẽ bởi SpriteBatch.DrawString?
14
A
Trả lời
16
Bước đầu tiên là đo chuỗi bằng cách sử dụng SpriteFont.MeasureString()
. Sau đó, ví dụ nếu bạn muốn vẽ nó sang bên trái của một điểm nhất định, thay vì sang phải như mặc định, thì bạn cần phải trừ độ rộng X của phép đo khỏi nguồn gốc của bản vẽ văn bản. Nếu bạn muốn nó được làm trung tâm, sau đó bạn có thể sử dụng một nửa số đo lường vv
15
tôi sử dụng mã này:
[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();
Các vấn đề liên quan
- 1. Làm cách nào để căn chỉnh văn bản căn chỉnh trong canvas html5?
- 2. Làm cách nào để căn giữa theo chiều dọc căn chỉnh văn bản trong một NSTextField?
- 3. Làm cách nào để căn giữa theo chiều dọc căn chỉnh hình nền với văn bản?
- 4. Android Chỉnh sửa căn chỉnh văn bản
- 5. Căn chỉnh văn bản JList
- 6. Làm cách nào để viết văn bản trong các cột được căn chỉnh trong Perl?
- 7. Làm cách nào để căn chỉnh theo chiều dọc văn bản trong hộp chỉnh sửa?
- 8. Cách căn chỉnh và căn trái các chuỗi văn bản căn chỉnh trong Bash
- 9. Làm cách nào để căn giữa văn bản trong tabhost?
- 10. Căn chỉnh văn bản của UIButton?
- 11. Căn chỉnh văn bản trong WPF DataGrid
- 12. Căn chỉnh dọc với Văn bản lõi?
- 13. iOS - Căn chỉnh văn bản UITableViewCell
- 14. văn bản căn chỉnh phải trong UIPickerView
- 15. Căn chỉnh văn bản trong HTML.TextBoxFor
- 16. Làm cách nào để căn giữa văn bản trong văn bản?
- 17. cột lưới trơn (căn chỉnh văn bản)
- 18. Căn chỉnh dọc văn bản trong nhãn
- 19. Căn giữa văn bản trong một JTextArea hoặc JTextPane - Căn chỉnh văn bản ngang
- 20. Làm cách nào để căn chỉnh nhãn của vùng văn bản lên trên cùng?
- 21. Làm cách nào để căn chỉnh văn bản theo chiều dọc?
- 22. Làm cách nào để căn chỉnh văn bản trực tiếp bên dưới hình ảnh?
- 23. Làm cách nào để căn chỉnh văn bản bên trong TextView trong Android?
- 24. Làm cách nào để thay đổi căn chỉnh văn bản trong QTabWidget?
- 25. Graphviz - làm cách nào để làm cho văn bản trong nhãn được căn trái?
- 26. Qt QProgressBar - căn chỉnh văn bản
- 27. Căn chỉnh văn bản UILabel phải
- 28. Có cách nào "đúng" để có NSTextFieldCell vẽ văn bản được căn giữa theo chiều dọc không?
- 29. Làm cách nào để căn chỉnh biểu tượng bootstrap bằng văn bản trong nút?
- 30. Làm cách nào để căn chỉnh văn bản trong một JTextField?