我想在文本框或RichtextBox中获取键盘光标位置。在WinFrom上我通过使用此代码
来完成此操作Point p = rtb.GetPositionFromCharIndex(rtb.SelectionStart);
p.Y += (int)rtb.Font.GetHeight()*2;
lstboxIntelli.Location = p;
lstboxbIntelli.Show();
ActiveControl = lstboxIntelli;
但是在WPF中,我无法获得GetPositionFromCharIndex
属性,还有其他方法可以实现这个
我想将一个Listbox放在键盘光标(如Intellisense)
的正下方任何帮助将不胜感激
答案 0 :(得分:1)
在 WPF TextBox
中,您可以通过多种方式获得插入位置:
TextBox.SelectionStart
和TextBox.SelectionLength
属性。 TextBox.CaretIndex
财产。不幸的是GetPositionFromCharIndex
中没有TextBox
因此您必须使用GetRectFromCharacterIndex
做一个小技巧来获取智能感知的起点:
var rect = rtb.GetRectFromCharacterIndex(rtb.CaretIndex);
var point = rect.BottomRight;
注意:我们正在使用BottomRight
将intellisense置于适当的位置。