【发布时间】:2021-02-15 00:17:20
【问题描述】:
我有一个带有RichTextBox 的 WPF 应用程序。文本框中的文本由跨度以编程方式构建并运行到一个段落。每个句子都是一个Span。句子中的每个单词都是Run。用户可以编辑文本。
RichTextBox 看起来像这样
<RichTextBox x:Name="txtRichSpeech">
<FlowDocument x:Name="txtRichSpeechDoc">
<Paragraph x:Name="txtRichSpeechContent"></Paragraph>
</FlowDocument>
</RichTextBox>
文本“这只是一个测试文本。”会有结构
<Span>
<Run>This</Run>
<Run> </Run>
<Run>is</Run>
<Run> </Run>
<Run>just</Run>
<Run> </Run>
<Run>a</Run>
<Run> </Run>
<Run>test</Run>
<Run> </Run>
<Run>text.</Run>
</Span>
当用户通过在中间添加 E 来编辑单词“test”时,我希望 <Run>test</Run> 变为 <Run>teEst</Run> 但我得到以下结构:
<Span>
<Run>This</Run>
<Run> </Run>
<Run>is</Run>
<Run> </Run>
<Run>just</Run>
<Run> </Run>
<Run>a</Run>
<Run> </Run>
<Run>te</Run>
</Span>
<Run>E</Run>
<Span>
<Run>st</Run>
<Run> </Run>
<Run>text.</Run>
</Span>
我怎样才能防止这种行为并且只拥有<Run>teEst</Run>?
【问题讨论】:
标签: c# wpf richtextbox flowdocument