Ну, это было сложнее, чем я ожидал, но я думаю, что код ниже делает это:
foreach (var paragraph in richTextBox1.Document.Blocks)
{
var text = new TextRange(paragraph.ContentStart,
paragraph.ContentEnd).Text;
paragraph.FontWeight = text.StartsWith("C") ?
FontWeights.Bold : FontWeights.Normal;
}
По сути, RichTextBox хранит свое содержимое в FlowDocument (доступ к которому осуществляется через свойство Document), который в свою очередьколлекция блоков, содержащих каждый абзац.На самом деле, каждый элемент в коллекции Blocks может быть чем угодно, производным от абстрактного класса Block ... но я предполагаю, что если вы добавите простой текст в RichTextBox, то они всегда будут просто абзацами.См. здесь для лучшего объяснения!
Самая хитрая часть в том, что для получения текста из абзаца вам необходимо использовать класс TextRange ... ноХорошая новость заключается в том, что после того, как у нас есть текст, у него есть простые свойства для установки веса шрифта и т. д.