Идея объясняется в вашей ссылке: есть свойство для текста в пользовательском элементе управления Затем отсканируйте текст на наличие слов и создайте соответствующие прогоны. В конце концов, присвойте их всем встроенным коллекциям TextBox.
В этом примере я просто использовал string.Split (). Вы можете пропустить слова, если они разделены другой пунктуацией.
Dictionary<string, Brush> colorDictionary;
string text; // The value of your control's text property
string[] splitText = text.Split(' ', ',', ';', '-');
foreach (string word in splitText)
{
if (string.IsNullOrEmpty(word))
{
continue;
}
Brush runColor;
bool success = colorDictionary.TryGetValue(word, out runColor);
if (success)
{
Run run = new Run(word);
run.Background = runColor;
textbox.Inlines.Add(run);
}
else
{
Run run = new Run(word);
texbox.Inlines.Add(run);
}
}