我有一个像这样的文档:
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;
我需要通过点击该文本的任何部分来更改其中一行的背景。
首先,我尝试更改给定内联的背景(无论鼠标单击),但我无法执行此操作。
任何帮助都将不胜感激。
修改 我可以更改运行的背景颜色,但之后我不得不再次添加所有运行并重绘。 我需要它更快地工作,所以我只是试图改变运行而不再添加所有。
答案 0 :(得分:2)
您可以为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;
}