Изменение встроенного в flowdocument

У меня есть Flowdocument, как это:

var mcFlowDoc = new FlowDocument();
var para = new Paragraph();
para.Inlines.Add(new Run("This is the first line."));
para.Inlines.Add(new Run("This is the second line."));
para.Inlines.Add(new Run("This is the third line."));
mcFlowDoc.Blocks.Add(para);
richTextBox.Document = mcFlowDoc;

Мне нужно изменить фон одной из строк, нажав на любую часть этого текста.

Прежде всего я пытаюсь изменить фон данного встроенного (независимо от щелчка мыши), но я не могу это сделать.

Любая помощь будет оценена.

Изменить: я мог изменить цвет фона прогона, но затем мне пришлось добавить все прогоны снова и перерисовать. Мне нужно, чтобы он работал быстрее, поэтому я просто пытаюсь изменить цикл, не добавляя все снова.

1 ответ

Решение

Вы можете добавить Style за Run например, подписаться MouseLeftButtonDown

<RichTextBox.Resources>
    <Style TargetType="Run">
        <EventSetter Event="MouseLeftButtonDown" Handler="Run_Click" />
    </Style>
</RichTextBox.Resources>

и обработать событие, как это

void Run_Click(object sender, MouseButtonEventArgs e)
{
    Run run = sender as Run;
    run.Background = Brushes.Red;
}
Другие вопросы по тегам