【发布时间】:2017-09-19 21:22:00
【问题描述】:
我正在尝试使用户能够使用 RichTextBox 控件编辑文本的特定部分(并且仅限于那些部分)。
我的方法包括在FlowDocument 中使用InlineUIContainer 标记中包含的TextBox 控件。下面的代码显示了我到目前为止所完成的工作:
<RichTextBox IsDocumentEnabled="True">
<FlowDocument>
<Paragraph>
<InlineUIContainer >
<TextBox Text="Field" MinWidth="65"></TextBox>
</InlineUIContainer>
<InlineUIContainer>
<TextBlock Text="Some text..." ></TextBlock>
</InlineUIContainer>
</Paragraph>
</FlowDocument>
</RichTextBox>
这样做的问题是用户能够选择FlowDocument 中的元素并删除它们......更糟糕的是,他们可以编辑属于Run 元素的任何文本,甚至可以剪切/粘贴文本文件。
我有在RichTextBox 上设置IsReadOnly="True" 的想法,但这也会禁止编辑文本框...我也可以处理 PreviewKeyDown 但不能处理所有情况(即:右键单击并按下粘贴)。
我想知道是否有任何替代解决方案甚至替代库或第三方控件可以提供帮助。
【问题讨论】:
标签: c# wpf richtextbox