gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 07:13:31 24 4
gpt4 key购买 nike

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

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

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

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

最佳答案

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

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

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

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

关于wpf - 如何在 WPF RichTextBox 中将插入符号移动一定数量的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2497291/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com