繁体   English   中英

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>

这个问题是用户能够选择FlowDocument的元素并删除它们...更糟糕的是,他们可以编辑任何属于Run元素的文本,甚至可以剪切/粘贴文档中的文本。

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

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

如何将TextBoxIsReadOnly属性设置为false并将RichTextBoxIsReadOnly属性设置为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM