Изменение встроенного в 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;
}