私は通常のRichTextBox
のように振る舞いたいWPF RichTextBox
コントロールを持っています。可視。私が抱えている問題は、IsReadOnly
をFalse
に変更すると、RichTextBox
はキーストロークに反応しなくなります。私はそれがホーム、エンド、PgUp、PgDn、アップ、ダウンのようなキーストロークに正常に応答したい。 documentationにはこの動作は記載されていません。IsReadOnlyがtrueの場合、RichTextBoxはキーストローク(Home、End、PgUp、PgDn)を無視します。
<RichTextBox
IsReadOnly="True"
ScrollViewer.VerticalScrollBarVisibility="Visible"
Width="65" Height="20">
<FlowDocument>
<Paragraph>
Line 1
Line 2
Line 3
</Paragraph>
</FlowDocument>
</RichTextBox>
OnKeyDown
イベントハンドラを追加しようとしましたが、起動しません。キーボードフォーカスでRichTextBox
のキーを押すとSnoopでイベントを監視し、発生したイベントはSnoopに表示されません。私はTrue
に明示的にIsDocumentEnabled
を設定しようとしましたが、それも効果がありません。私はScrollViewer
にRichTextBox
をラップしようとしましたが、これは効果がありません。
RichTextBox
をIsReadOnly=True
としてどのように維持することができますか?RichTextBox
の予想されるキーストロークの動作を得るにはどうすればよいですか?真
<RichTextBox IsReadOnly="True"
IsReadOnlyCaretVisible="True"
... />
へ
に
CaretBrush
を設定し、あなたがPreviewKeyDownイベントハンドラを使用すると、押されたキーを確認してください。私は@Meleakが提供するソリューションを好むが、手動で行う方法のコード例がここにある:https://gist.github.com/1915136 –