如何在WPF文本框中找到插入位置(在屏幕空间或表单空间中)?

时间:2017-10-03 21:02:49

标签: wpf wpfdatagrid

正如标题所示,如何在屏幕或表格空间坐标中找到WPF文本框的插入位置?到目前为止,我只能找到如何在文本框中获取插入符号的字符位置。

也许我已经领先于自己了,因为实际上,我正在努力确保用户可以看到DataGrid中包含的所选TextBox(动态高度)的当前插入位置。所以,如果有一种方法可以在不知道插入符的坐标的情况下做到这一点,那么我就是所有的耳朵。到目前为止,我已尝试调用DataGrid的ScrollIntoView方法,但如果TextBox高于可用的屏幕空间,则可能会失败。

2 个答案:

答案 0 :(得分:0)

我不相信你可以原生,但你调用use interop来调用Win32 GetGUIThreadInfo()。请参阅此处以获取示例:match the docs

答案 1 :(得分:0)

我会建议一些但我不知道它是否适用于你的情况。我需要创建一个三角形插入符来替换WPF文本框的垂直线插入符号。我使用translate转换控制其位置,它始终遵循默认的文本框插入符号。通过这种方式,您可以知道新插入符号在文本框中的位置(通过了解其转换变换的X和Y),然后您可以使用PointToScreen将其转换为屏幕坐标。