【问题标题】:Getting caret position in visual studio's editor在 Visual Studio 的编辑器中获得插入符号位置
【发布时间】:2013-07-29 19:31:06
【问题描述】:

我目前正在开发一个 Visual Studio 扩展,它需要在触发 menuCommand 后打开一个 WPF 表单。

我想相对于插入符号位置打开表单,所以我需要获取插入符号的像素位置。 我检查了This article

但是没有用。

请帮忙?

【问题讨论】:

    标签: visual-studio visual-studio-extensions vspackage


    【解决方案1】:

    获得 IWpfTextView 后,您可以执行 view.TextViewLines.GetCaretBounds(view.Caret.Position.BufferPosition),这将为您提供“文本坐标系”中的位置。通过 view.ViewportTop/view.ViewportLeft 调整应该为您提供相对于 UIElement 的位置,即视图。从那里,view.VisualElement.PointToScreen 可能会将其获取到屏幕坐标。

    我假设您已经确定不想将此 UI 直接嵌入到编辑器中?因为那(稍微)容易些。

    【讨论】:

    • 嗨,杰森,非常感谢您的回复!你能帮我获取活动文档的 IWpfTextView 吗? (不是projectItem),此外,您将UI直接嵌入到编辑器是什么意思?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多