Легко передавать текст в программе WPF с использованием C#

Пример Рендеринг текста в программе WPF с использованием C# объясняет, как рисовать текст в коде WPF. В этом примере используется следующий метод расширения, чтобы упростить рисование текста.

// Нарисуйте текст в указанном месте.
public static void DrawString(this DrawingContext drawing_context,
    string text, string font_name, double em_size, Brush brush,
    Point origin, VertAlignment valign, TextAlignment halign)
{
    Typeface typeface = new Typeface(font_name);
    FormattedText formatted_text = new FormattedText(
        text, CultureInfo.CurrentUICulture,
        FlowDirection.LeftToRight,
        typeface, em_size, brush);
    formatted_text.TextAlignment = halign;

    if (valign == VertAlignment.Middle)
        origin.Y -= formatted_text.Height / 2;
    else if (valign == VertAlignment.Bottom)
        origin.Y -= formatted_text.Height;

    drawing_context.DrawText(formatted_text, origin);
}

Этот метод принимает параметры, которые описывают текст для рисования. Он использует их для создания объектов Typeface и FormattedText, которые ему нужны. Он устанавливает свойство FormattedText объекта TextAlignment для выравнивания текста по горизонтали по желанию.

Если параметр valign указывает, что текст должен быть центрирован по вертикали, код вычитает половину высоты текста из координаты Y начала рисунка. Если valign указывает, что текст должен быть выровнен снизу, код вычитает полную высоту текста из координаты Y начала координат рисунка, чтобы придать ему правильное вертикальное положение.

Метод завершает вызов метода DrawingContext объекта DrawText для рисования текста.

Следующий код показывает, как основная программа использует метод расширения для рисования текста в правом верхнем углу.

drawingContext.DrawString("TOP\nRIGHT", font_name, em_size,
    Brushes.Black, point, VertAlignment.Top, TextAlignment.Right);

Источник: http://csharphelper.com/blog/2015/04/render-text-easily-in-a-wpf-program-using-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector