Практическое руководство. Выравнивание рисуемого текста
При выполнении пользовательского рисования, часто можно формируемого выравнивание текста по центру формы или элемента управления. Выровнять текст, отображаемый с DrawString или DrawText методы создания нужный объект форматирования и установив соответствующие параметры форматирования.
Для рисования по центру текста с помощью GDI + (DrawString)
Используйте StringFormat с соответствующим DrawString метод, чтобы задать текст, выровненный по центру.
string text1 = "Use StringFormat and Rectangle objects to" + " center text in a rectangle."; using (Font font1 = new Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point)) { Rectangle rect1 = new Rectangle(10, 10, 130, 140); // Create a StringFormat object with the each line of text, and the block // of text centered on the page. StringFormat stringFormat = new StringFormat(); stringFormat.Alignment = StringAlignment.Center; stringFormat.LineAlignment = StringAlignment.Center; // Draw the text and the surrounding rectangle. e.Graphics.DrawString(text1, font1, Brushes.Blue, rect1, stringFormat); e.Graphics.DrawRectangle(Pens.Black, rect1); }
Для рисования по центру текста с использованием GDI (DrawText)
Используйте TextFormatFlags перечисления для упаковки, а также по вертикали и горизонтали Центрирование текста с соответствующим DrawText метод.
string text2 = "Use TextFormatFlags and Rectangle objects to" + " center text in a rectangle."; using (Font font2 = new Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point)) { Rectangle rect2 = new Rectangle(150, 10, 130, 140); // Create a TextFormatFlags with word wrapping, horizontal center and // vertical center specified. TextFormatFlags flags = TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter | TextFormatFlags.WordBreak; // Draw the text and the surrounding rectangle. TextRenderer.DrawText(e.Graphics, text2, font2, rect2, Color.Blue, flags); e.Graphics.DrawRectangle(Pens.Black, rect2); }
Компиляция кода
Предыдущий пример кода предназначен для работы с Windows Forms, и они требуют PaintEventArgse
, который является параметром PaintEventHandler.