C# WPF RichTextBox标记化编辑
我试图使用C# WPF RichTextBox标记化编辑,c#,wpf,richtextbox,C#,Wpf,Richtextbox,我试图使用RichTextBox控件让用户能够编辑文本的特定部分(并且仅限于这些部分) 我的方法包括在流程文档中使用InlineUIContainer标记中包含的TextBox控件。下面的代码显示了我到目前为止所完成的工作: <RichTextBox IsDocumentEnabled="True"> <FlowDocument> <Paragraph> <InlineUIContainer >
RichTextBox
控件让用户能够编辑文本的特定部分(并且仅限于这些部分)
我的方法包括在流程文档中使用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>
问题在于,用户可以选择流程文档中的元素并将其删除。。。更糟糕的是,他们可以编辑Run
元素中的任何文本,甚至可以剪切/粘贴文档中的文本
我想在RichTextBox
上设置IsReadOnly=“True”
,但这也会禁止编辑文本框。。。我还可以处理PreviewKeyDown,但不能处理所有情况(即:右键单击并按粘贴)
我想知道是否有任何替代解决方案,甚至是替代库或第三方控件可以提供帮助。将TextBox
的IsReadOnly
属性设置为false
,将RichTextBox
的IsReadOnly
属性设置为true
怎么样
<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>
不错。我不希望IsReadOnly
是继承的财产,但它确实是。