Я знаю, что это старая ветка, но я все равно решил написать здесь для тех, кто сталкивается с ней через Google (как я сделал). Я получил большую часть пути к решению с помощью подхода крилгара, но у меня возникли проблемы, потому что некоторые из моих текстов содержат переводы строк. Соответственно, эта модификация работала лучше всего для меня:
private void WriteText(string text)
{
var para = doc.Content.Paragraphs.Add();
var start = para.Range.Start;
var end = para.Range.Start + text.IndexOf(":");
para.Range.Text = text;
para.Range.Font.Bold = 0;
para.Range.InsertParagraphAfter();
if(text.Contains(":")){
var rngBold = doc.Range(start, end);
rngBold.Bold = 1;
}
}
Ключевым отличием является то, что я вычисляю начало и конец в функции раньше. Я не могу понять, что это, но я думаю, что если в вашем новом тексте есть новые строки, последующее вычисление начала / конца что-то испортит.
И, очевидно, мое решение предназначено для текста в формате:
Метка: данные
где метка должна быть выделена жирным шрифтом.