WPF - Чертить линию текста с различными цветами фона

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

1
задан Shane 4 July 2010 в 12:38
поделиться

1 ответ

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

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

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

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

2
ответ дан 2 September 2019 в 23:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: