WPF RichTextBox标记化编辑

时间:2017-09-19 10:15:00

标签: c# wpf richtextbox

我正在尝试让用户使用RichTextBox控件来编辑文本的特定部分(并且只编辑那些部分)。

我的方法包括使用TextBoxInlineUIContainer标记中包含的FlowDocument控件。下面的代码显示了我迄今为止所取得的成就:

<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元素的任何文本,甚至可以剪切/粘贴文档中的文本。

我有想法在IsReadOnly="True"上设置RichTextBox但是也禁止编辑TextBox ...我也可以处理PreviewKeyDown但是无法处理所有情况(即:右)点击并按下粘贴)。

我想知道是否有任何其他解决方案,甚至是替代库或第三方控件都有帮助。

1 个答案:

答案 0 :(得分:3)

如何将IsReadOnly的{​​{1}}属性设置为TextBox以及false的{​​{1}}属性设置为IsReadOnly?:< / p>

RichTextBox