WPF RichTextBox 标记化编辑
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>
这个问题是用户能够 select FlowDocument
中的元素并删除它们...更糟糕的是,他们可以编辑 [=16] 中的任何文本=] 元素甚至文档中的 cut/paste 文本。
我想在 RichTextBox
上设置 IsReadOnly="True"
但这也禁止编辑 TextBoxes...我也可以处理 PreviewKeyDown 但不能处理所有情况(即: 右键单击并按粘贴)。
我想知道是否有任何替代解决方案,甚至是替代库或第三方控件可以提供帮助。
如何设置 TextBox
的 IsReadOnly
属性 为 false
和 [=15= 的 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>
我正在尝试使用户能够使用 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>
这个问题是用户能够 select FlowDocument
中的元素并删除它们...更糟糕的是,他们可以编辑 [=16] 中的任何文本=] 元素甚至文档中的 cut/paste 文本。
我想在 RichTextBox
上设置 IsReadOnly="True"
但这也禁止编辑 TextBoxes...我也可以处理 PreviewKeyDown 但不能处理所有情况(即: 右键单击并按粘贴)。
我想知道是否有任何替代解决方案,甚至是替代库或第三方控件可以提供帮助。
如何设置 TextBox
的 IsReadOnly
属性 为 false
和 [=15= 的 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>