Вы можете сделать это, используя базовый TextBlock с несколькими встроенными дочерними элементами и назначая им отдельные цвета фона.Вот простой пример в XAML:
<TextBlock>
<Run Background="Blue">Foo</Run>
<Run Background="Red">Bar</Run>
</TextBlock>
Обратите внимание, что ContentPresenter без шаблона автоматически обернет встроенные объекты в TextBlock, так что вы можете просто привязать свойство Content ContentControl к Span.См. этот вопрос StackOverflow для получения рекомендаций по привязке данных к Inlines.
Если вы хотите, чтобы текст редактировался пользователем, вам следует взглянуть на RichTextBox .