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

Обычно для отображения текста в WPF вы используете какой-то объект, такой как Label или TextBlock, но при необходимости вы можете нарисовать текст самостоятельно. Чтобы сделать это проще, во время разработки я устанавливаю свойство Background окна Transparent (иначе окно рисует фон поверх любого текста, который вы рисуете). Я также назвал основной элемент управления grdMain, чтобы было легко определить, насколько велика клиентская область окна.

Чтобы нарисовать текст, переопределите метод OnRender окна и используйте его параметр drawingContext, чтобы сделать рисунок. Эта программа использует следующий метод OnRender.

Этот метод начинается с вызова метода DrawEllipse для рисования эллипса, который заполняет окно. См. Пример Извлечь эллипс в программе WPF, используя C# для получения информации о том, как работает этот метод.

Далее код создает объект Typeface для представления используемого шрифта, в этом случае Times New Roman. Затем он использует Typeface для создания объекта FormattedText. Этот объект представляет собой конкретный фрагмент текста, нарисованный специальной кистью. Конструктор FormattedText принимает в качестве параметра культуру, которая должна использоваться для рисования текста. Этот пример просто использует текущую культуру пользовательского интерфейса программы.

В дополнение к указанию используемой кисти объект FormattedText предоставляет свойства и методы, позволяющие вам управлять форматированием текста другими способами. Этот пример устанавливает свойство объекта TextAlignment объекта, чтобы центрировать текст по горизонтали.

В отличие от класса StringFormat в GDI +, свойство TextAlignment не дает вам никакого контроля над вертикальным выравниванием текста. Чтобы выровнять текст по вертикали, вам нужно измерить текст и вычислить правильную координату Y.

В этом примере используется размер элемента управления grdMain, чтобы найти центр клиентской области окна. Затем он вычитает половину высоты форматированного текста из координаты Y, чтобы центрировать текст по вертикали.

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

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

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *