wpf - 当AllowTab设置为 false 时将选项卡插入 WPF RichTextBox

标签 wpf richtextbox tabbing

我正在尝试弄清楚当AllowTab 属性设置为 false 时如何将制表符插入到 WPF RichTextBox 中。

是否有快捷键可以实现此操作?我宁愿不必向工具栏添加特殊按钮或告诉用户必须复制并粘贴一个按钮......

最佳答案

好吧,到目前为止我能想到的最好的办法就是在后面的代码中拦截 keydown 事件:

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;
}

关于wpf - 当AllowTab设置为 false 时将选项卡插入 WPF RichTextBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1678417/

相关文章:

c# - 文件浏览器 TreeView MVVM

c# - 主线程的 SynchronizationContext.Current 如何在 Windows 窗体应用程序中变为 null?

c# - RichTextBox 在其中拖放时抛出异常

c# - RichTextBox换行转换?

javascript - TinyMCE jQuery 包中出现额外的富文本选项

html - 使用 tab 键滚动在 Chrome 中不起作用

c# - 根据 ObservableCollection 是否为空禁用 MenuItem

html - 如何在列中显示 "Center" ListView 项

python - Notepad++ 选项卡设置

javascript - 用 jquery 制表符不起作用