WPF - рисование линии текста с разными цветами фона - PullRequest
1 голос
/ 04 июля 2010

Мне нужно нарисовать строку текста с другим фоном для части строки (например, выделением) в WPF.Класс FomattedText позволяет вам устанавливать различные атрибуты для разных частей строки, такие как жирный шрифт, подчеркивание цвета переднего плана и т. Д., Но не имеет цвета фона.Я думаю, что использование TextFormatter и написание собственного TextSource сделают эту работу, но это кажется довольно тяжелым способом сделать что-то довольно простое.Есть ли другой способ сделать это?

1 Ответ

2 голосов
/ 04 июля 2010

Вы можете сделать это, используя базовый TextBlock с несколькими встроенными дочерними элементами и назначая им отдельные цвета фона.Вот простой пример в XAML:

<TextBlock>
    <Run Background="Blue">Foo</Run>
    <Run Background="Red">Bar</Run>
</TextBlock>

Обратите внимание, что ContentPresenter без шаблона автоматически обернет встроенные объекты в TextBlock, так что вы можете просто привязать свойство Content ContentControl к Span.См. этот вопрос StackOverflow для получения рекомендаций по привязке данных к Inlines.

Если вы хотите, чтобы текст редактировался пользователем, вам следует взглянуть на RichTextBox .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...