如何在 WPF RichTextBox 中将插入符号移动一定数量的位置?

2023-11-25

我想将插入符号移动到当前插入符号位置的右侧 4 个位置。我已注册PreviewKeyDown,并调用InsertTextInRun()当 Tab 键被捕获时,如下所示:

private void rtb_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Tab)
    {
        rtb.CaretPosition.InsertTextInRun("    ");
        e.Handled = true;
    }
}

问题是,在调用后插入符保持在原位InsertTextInRun()。确实如此not移动到新文本的末尾,这是我想要的行为。我该怎么做?


顺便说一句 - 是的,我知道AcceptsTab属性于RichTextBox。我选择忽略 is 并推出我自己的选项卡功能,因为使用AcceptsTab在后续行中缩进文本有一个令人讨厌的副作用,即not我想要的是。


我刚刚遇到了同样的问题。看来最终插入符的位置取决于它在插入之前移动的方式。

以下代码确保(3.5sp1)插入后,光标将位于插入文本的右侧:

 rtb.CaretPosition = rtb.CaretPosition.GetPositionAtOffset(0, LogicalDirection.Forward);
rtb.CaretPosition.InsertTextInRun(text);

请注意,插入符号的 LogicalDirection 属性可能(并且必须)因此而更改;仅仅创建正确的 TextPointer 是不够的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 WPF RichTextBox 中将插入符号移动一定数量的位置? 的相关文章

  • 当应用程序未聚焦时监听按键

    我有一个应用程序 C 4 0 WPF 它是隐藏的 可以通过单击系统托盘图标或我创建的其他框架 停靠在左侧和最上面的小框架 来显示 My customer wants to add a new way to display the appli
  • Silverlight/WPF 按钮上的 MouseOver 样式

    努力为鼠标悬停的按钮设置样式 我已经成功地设置了按钮的样式 纯红色 但我希望每当鼠标悬停时它都会更改为纯黑色 我是 XAML 新手 我可以看到它需要某种类型的故事板 动画 不确定具体如何执行此操作 任何帮助将不胜感激 这与 WPF 和 Si
  • 当没有实现 INotifyPropertyChanged 的​​对象时如何更新绑定。 WPF

    我有一个ViewModel它继承自BindableBase类 它是 Prism 中的一个类 它实现了INotifyPropertyChanged public class MyViewModel BindableBase 我有一个使用的属性
  • 在 ControlTemplate.Triggers 中使用 TemplateBinding

    为什么下面的 XAML 会给我一个 XamlParseException 并显示 无意义的 消息 表达式类型不是有效的样式值 在运行时
  • 强制关闭代码中所有打开的弹出窗口

    我想让所有打开的弹出窗口 StaysOpen false 从代码中关闭 基本上我想从代码中模拟用户单击鼠标 这将关闭弹出窗口 我不需要实际模拟点击 我只需要结果行为 我想过只浏览视觉树寻找弹出窗口并关闭每个弹出窗口 但这似乎不是最干净的方法
  • 在两个屏幕上拉伸 WPF 窗口

    我是 WPF 的初学者 我希望我的应用程序能够跨越两个具有相同分辨率的屏幕 我需要一个示例代码应用程序 因为我不知道从哪里开始 谢谢 The Screen课程将为您提供有关所有屏幕的信息 在之前没有实际做过的情况下 我会尝试以下操作 int
  • 一个好的 WPF 滚动时间线控件? (精美的日期时间选择器)

    我正在寻找可以用作时间线控件的东西 一种 横幅 用户可以向左或向右拖动以前进或后退 然后他或她应该能够在该控件上选择一个时间点 一个精美的日期时间选择器 有任何想法吗 欢迎您尝试我的新 TimelineControl 我已经在 codepl
  • 自己绘制的WPF自定义滑块

    这是我关于堆栈溢出的第一个问题 所以不要踢它 我在尝试创建 Mac 风格的滑块控件时遇到问题 我已经发现这个解决方案 http www codeproject com KB miscctrl MAC Slider aspx我已经在我的解决方
  • WPF 将枚举列表(或类似的)绑定到复选框列表

    我想将复选框列表绑定到 WPF 中的枚举值集合 枚举不是 Flags 语境 它用于过滤数据网格 其中每个项目都有我的枚举的一个实例 它不一定需要绑定到列表 固定大小的集合也可以 假设您想绑定到枚举的所有可能值 您可以使用对象数据提供者 ht
  • 在 C# 中显示来自原始未压缩数据源的实时视频:WPF 与 Winforms

    我有一个实时的 16 位灰度视频流 它作为原始 未压缩的字节流 每像素 2 字节 2 18 像素 帧 32 帧 秒 通过内存中的环形缓冲区推送 这是通过 PCI 图像采集卡来自科学级相机的 我想对视频进行一些简单的处理 剪辑动态范围 着色
  • 带有一个处理程序的 WPF 切换按钮 Checked/Uchecked 事件

    我正在使用一个ToggleButton在 WPF 窗口中
  • WPF:GridViewColumn 调整大小事件

    我在用着ListView with GridView 有没有GridViewColumn调整事件大小 我会处理PropertyChanged事件代替 这PropertyChanged在 Visual Studio 智能感知中看不到事件 但您
  • 绑定为资源

    我可以定义一个Binding as a Resource然后用不同的方式重复使用它Controls特性 Example Binding
  • 是否可以通过容器/包装器在 WPF 表单中托管 WinForm 表单?

    有没有办法在 WPF 表单中的某种容器或包装类型控件中托管 显示完整的 WinForms 表单 而不仅仅是单个控件 我正在寻找与 html 中的 php 或 iframe 的虚拟包含概念类似的东西 可能通过将其编译成 OCX 或 DLL 来
  • WPF XAML 网格可见性触发器

    我的网格第一行有一条状态消息 我希望它在可见性发生变化时滑入和滑出 第一个可见性触发器效果很好 可以快速打开第一个网格行 一旦我添加 折叠 触发器 就什么都不起作用了 当可见性设置为折叠时 如何反转动画以滑动关闭
  • Grid 的 SharedSizeGroup 和 * 大小调整

    我有一个用户控件 调用它UserControl 它有一个带有以下列定义的网格
  • XAML - 带有触发器/参数的通用文本框样式?

    我希望能够拥有一个通用样式模板 可以根据布尔值切换文本框的颜色 但我不想为每个文本框创建独特的样式 我该怎么做呢 我在下面放置了一些示例代码 我希望它如何工作 三个文本框 均具有不同的绑定 但尝试使用相同的模板基于布尔值选择红色或绿色 Th
  • WPF ICommand CanExecute():RaiseCanExecuteChanged() 或通过 DispatchTimer 自动处理?

    我正在尝试确定使 ICommands 的 CanExecute 反映在 UI 中的最佳方法 据我了解 调度员是处理 UI 绘图的 WPF 引擎 默认情况下 调度程序在实例化以及活动用户界面 单击 UI 或键盘输入 时评估 ICommands
  • TextBlock:Text与StringFormat的绑定

    是否可以绑定Text and StringFormat too
  • 使用拇指移动变换后的控件会产生奇怪的行为

    当尝试使用拇指在画布上移动控件时 我遇到了奇怪的行为 当我将控件添加到画布并使用 Thumb DragDelta 事件来移动它时 一切看起来都很好 但是 当我对控件应用旋转变换时 拖动它是很奇怪的 控件开始围绕光标旋转 角度越大 圆圈越大

随机推荐

  • 如何在 Spark 中访问广播的 DataFrame

    我创建了两个数据框 它们来自 Hive 表 PC ITM 和 ITEM SELL 并且大小很大 我正在使用它们 经常在SQL查询中通过注册为表 但是由于这些数据很大 所以需要很多时间 以获得查询结果 所以我将它们保存为镶木地板文件 然后读取
  • “无法找到与应用程序标识符''匹配的有效配置文件”错误

    我正在开发一个应用程序 我想将其安装到一些 iPad 而不是 App Store 上 我购买了开发者许可证 并在 Xcode 上添加了规定 现在 当我尝试为已连接到计算机的 iPad 构建应用程序时 出现错误 A valid provisi
  • Websphere 不信任证书

    我有一个 Web 应用程序 它调用通过 SSL 保护的 SOAP Web 服务 https zzzzzzzzzzzz xxxxx 服务器发送两个证书 根和叶 因此我使用以下属性导入两个证书 com ibm websphere ssl ret
  • 不带 new 的动态数组 (C++)

    我是 C 新手 这是一个非常基本的问题 在C 中只有两种创建动态数组的方法 在书上看到的 如有错误请指正 使用内存分配new运算符或malloc 函数取自C 声明数组时int array size 方括号 must have a const
  • java applet 策略文件放置在哪里?

    我正在开发一个人工智能项目 这是一个逻辑游戏 目标是两个用户连接到网络上的服务器 充当管理员 然后开始一一玩 为了创建连接 我有一个服务器代码 它只是在 localhost 8000 上侦听 并在客户端到达时为其分配团队值 连接后 客户端在
  • CSS - 如何从div溢出到屏幕全宽

    我有一个包含 DIV 我将其用作响应式网格的一部分 它扩展到我允许的最大宽度 即 1280px 然后在大型设备上出现边距 这是我的 CSS 一些 Less container margin left auto margin right au
  • XML 中的“xmlns”是什么意思?

    我在 XML 文件中看到以下行 xmlns android http schemas android com apk res android 我也见过xmlns在我遇到的许多其他 XML 文件中 它是什么 它的意思是XML命名空间 基本上
  • 使用 JavaScript 对 CSS3 变换的值进行动画处理是否可以排除硬件加速?

    您可以通过设置动画持续时间并设置 CSS3 变换的初始值和最终值来利用硬件加速动画 如果您不设置动画持续时间并使用关键帧 而是直接使用 JavaScript 对所需 CSS3 转换的值进行动画处理 会怎样 您是否仍会利用硬件加速 或者是否会
  • 如何最好地将 CString 转换为 BSTR 以将其作为“in”参数传递到 COM 方法中?

    我需要转换一个CString实例到正确分配的BSTR并通过它BSTR转换为 COM 方法 为了让代码能够针对 ANSI 和 Unicode 进行相同的编译和工作 我使用CString AllocSysString 转换任何格式CString
  • MPI 和全局变量

    我必须实施 MPI 程序 有一些全局变量 4 个浮点数组和其他 6 个单浮点变量 首先由主进程从文件读取数据进行初始化 然后我调用 MPI Init 当排名 0 的进程等待结果时 其他进程 排名 1 2 3 4 处理数组等 问题是这些数组似
  • 在 ggplot() 中将误差线放置在列中心时出现问题

    我的条形图有问题 误差线仅出现在分组变量列的角上 而不是以集中方式出现在它们上 我正在使用的代码是这样的 a lt data frame Cond c In In Out Out Temp c Hot Cool Hot Cool Score
  • .NET 缓存(不在网站中)

    我需要一个能够响应内存压力的缓存 就像 ASP NET 中内置的缓存一样 我没有使用网站 但我正在构建 Windows 服务 有什么建议么 代码 技术 产品 只要它在内存中 我不在乎 如果您熟悉 ASP NET 缓存 System Web
  • 如何使用pvc创建postgres的helm图表

    我想使用 PVC 持久卷声明 为 PostgreSQL 创建一个 helm 图表 我考虑过尝试 katacodahttps www katacoda com courses kubernetes helm package manager使用
  • 无法建立与节点 -1 (/127.0.0.1:9092) 的连接。经纪人可能不可用

    我正在研究Spring Boot Kafka来自 Confluence 的示例并运行简单的生产者示例并出现以下错误 我使用的是 Windows 机器 并在 Windows 上安装了 ubunt 14 04 LTS 注意 即使我使用 loca
  • 如何使用 IOStream 存储格式设置?

    当为用户定义的类型创建格式化输出时 通常需要定义自定义格式化标志 例如 如果自定义字符串类可以选择在字符串周围添加引号 那就太好了 String str example std cout lt lt str lt lt lt lt squo
  • ASP.Net Core Cookie 身份验证不是持久的

    我开始使用开发网站ASP NET 核心 2 2 我正在通过自定义 cookie 身份验证 而不是身份 实现登录 注销 请查看或克隆the repo git clone https github com mrmowji aspcore cus
  • 多平台可移植Python

    我想在虚拟环境中将python安装在闪存驱动器上 这样无论我在哪里都可以开发代码 我可以在 Windows Mac Linux 计算机上使用我的闪存驱动器吗 对于 Windows 请前往 Portable Python http Porta
  • 如何使用 PHP 提取多部分 zip 文件?

    我使用了这段代码 来自 使用 php 解压文件 zip new ZipArchive res zip gt open file zip if res TRUE zip gt extractTo myzips extract path zip
  • 降低 ORMlite 的内部日志详细程度或禁用它

    我们正在我们的应用程序中进行一些重大的性能调整 因此我们开始使用方法跟踪来查找瓶颈 乍一看 Ormlite 还不错 但我们发现 例如在一个需要 8 毫秒的查询中 Ormlite 的内部日志需要 6 毫秒 75 此外 这些日志调用处于调试级别
  • 如何在 WPF RichTextBox 中将插入符号移动一定数量的位置?

    我想将插入符号移动到当前插入符号位置的右侧 4 个位置 我已注册PreviewKeyDown 并调用InsertTextInRun 当 Tab 键被捕获时 如下所示 private void rtb PreviewKeyDown objec