AllowTab 属性が false に設定されている場合に、タブ文字を WPF RichTextBox に挿入する方法を見つけようとしています。
これを可能にするショートカットキーはありますか?ツールバーに特別なボタンを追加したり、コピーして貼り付ける必要があることをユーザーに伝えたりする必要はありません...
AllowTab 属性が false に設定されている場合に、タブ文字を WPF RichTextBox に挿入する方法を見つけようとしています。
これを可能にするショートカットキーはありますか?ツールバーに特別なボタンを追加したり、コピーして貼り付ける必要があることをユーザーに伝えたりする必要はありません...
さて、これまでに思いついた最善の方法は、コードビハインドでキーダウンイベントをインターセプトすることです。
private void RichTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key != Key.Tab ||
(Keyboard.Modifiers & ModifierKeys.Control) != ModifierKeys.Control)
return;
var richTextBox = sender as RichTextBox;
if (richTextBox == null) return;
if (richTextBox.Selection.Text != string.Empty)
richTextBox.Selection.Text = string.Empty;
var caretPosition = richTextBox.CaretPosition.GetPositionAtOffset(0,
LogicalDirection.Forward);
richTextBox.CaretPosition.InsertTextInRun("\t");
richTextBox.CaretPosition = caretPosition;
e.Handled = true;
}
以下のコードは私にとってはうまくいきます。
private void RichTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key != Key.Tab) return;
var richTextBox = sender as RichTextBox;
if (richTextBox == null) return;
if (richTextBox.Selection.Text != string.Empty)
richTextBox.Selection.Text = string.Empty;
var caretPosition = richTextBox.CaretPosition.GetPositionAtOffset(0,
LogicalDirection.Forward);
richTextBox.CaretPosition.InsertTextInRun(" ");
richTextBox.CaretPosition = caretPosition;
e.Handled = true;
}