wpf 如何将键盘光标位置设置为文本框中的点

rvpgvaaj  于 2023-02-13  发布在  其他
关注(0)|答案(1)|浏览(241)

我想在文本框或RichTextBox中获取键盘光标位置。在WinFrom上,我使用以下代码实现了这一点

Point p = rtb.GetPositionFromCharIndex(rtb.SelectionStart);
            
p.Y += (int)rtb.Font.GetHeight()*2;               
lstboxIntelli.Location = p;
lstboxbIntelli.Show();
ActiveControl = lstboxIntelli;

但是在WPF中,我无法获得GetPositionFromCharIndex属性,是否有其他方法可以实现这一点
我想将列表框放置在键盘光标的正下方(类似于Intellisense)
任何帮助都将不胜感激

5jvtdoz2

5jvtdoz21#

WPFTextBox中,可以通过多种方式获取插入符号位置:
1.通过访问TextBox.SelectionStartTextBox.SelectionLength属性。

  1. TextBox.CaretIndex属性。
    不幸的是,TextBox中没有GetPositionFromCharIndex,因此您必须使用GetRectFromCharacterIndex来获得intellisense的起点:
var rect = rtb.GetRectFromCharacterIndex(rtb.CaretIndex);
var point = rect.BottomRight;
  • 注意:* 我们使用BottomRight来将intellisense放在适当的位置。

相关问题