我有一个WPF RichTextBox
控件,除了用户无法编辑文本且插入符号不可见外,我想在各方面表现得像普通RichTextBox
。我遇到的问题是,当我将IsReadOnly
更改为False
时,RichTextBox
会停止对击键做出反应。我希望它能正常响应Home,End,PgUp,PgDn,Up,Down等按键。 documentation未提及此行为。
<RichTextBox
IsReadOnly="True"
ScrollViewer.VerticalScrollBarVisibility="Visible"
Width="65" Height="20">
<FlowDocument>
<Paragraph>
Line 1
Line 2
Line 3
</Paragraph>
</FlowDocument>
</RichTextBox>
我尝试添加OnKeyDown
事件处理程序,但它不会触发。我在Snoop中观看了事件,因为我在键盘焦点上使用RichTextBox
按键,并且Snoop中没有显示触发事件。我已尝试将IsDocumentEnabled
明确设置为True
,但这也没有效果。我已经尝试将RichTextBox
包裹在ScrollViewer
中,但这也没有效果。
有关如何将此RichTextBox
维护为IsReadOnly=True
,但获得RichTextBox
预期的击键行为的任何建议?
答案 0 :(得分:6)
将IsReadOnlyCaretVisible
设为True
<RichTextBox IsReadOnly="True"
IsReadOnlyCaretVisible="True"
... />
如果您不希望看到插入符号,请将CaretBrush
设置为Transparent
<RichTextBox IsReadOnly="True"
IsReadOnlyCaretVisible="True"
CaretBrush="Transparent"
... />