在flowdocument中更改内联

时间:2013-07-28 09:45:17

标签: c# wpf richtextbox 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 个答案:

答案 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;
}