[英]WPF RichTextBox tokenized editing
我试图让用户使用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"
,但也禁止TextBoxes被编辑...我也可以处理PreviewKeyDown但是无法处理所有情况(即:右键单击并按下粘贴)。
我想知道是否有任何替代解决方案,甚至是替代库或第三方控件都有帮助。
如何将TextBox
的IsReadOnly
属性设置为false
并将RichTextBox
的IsReadOnly
属性设置为true
IsReadOnly
<RichTextBox IsDocumentEnabled="True" IsReadOnly="True">
<FlowDocument>
<Paragraph>
<InlineUIContainer >
<TextBox Text="Field" MinWidth="65" IsReadOnly="False"></TextBox>
</InlineUIContainer>
<InlineUIContainer>
<TextBlock Text="Some text..." ></TextBlock>
</InlineUIContainer>
</Paragraph>
</FlowDocument>
</RichTextBox>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.