gpt4 book ai didi

visual-studio - 如何将控件叠加到Visual Studio代码图面上

转载 作者:行者123 更新时间:2023-12-03 22:40:47 44 4
gpt4 key购买 nike

我正在使用Visual Studio可扩展性API将插件添加到Sql Server Management Studio中。我已经在将控件叠加到文本表面上取得了一些成功(我试图模仿CodeRush / Refactor操作列表,类似于智能感知组合),但是我只能基于以下属性来定位它的坐标空间:

get
{
var point = TextDocument.Selection.TopPoint;
return new Cursor( point.DisplayColumn, point.Line );
}


这段代码的确使我可以将cols /行转换为像素,但是当文本编辑器垂直或水平滚动时,我找不到偏移cols /行的方法。这将导致列表框消失在可见的屏幕空间下方。

我正在寻找的是一种从当前col / row对获取屏幕坐标的方法,因此无论滚动位置如何,我都可以将列表框放在光标旁边。

最佳答案

类型为TextSelection的TextDocument.Selection属性具有TextPane属性-有关更多信息,请参见here。它没有明确说明,但TextPane是屏幕上可见的部分。此外,TextPane的StartPoint属性提供了滚动文本的“偏移”。

因此,我能够通过从Selection的StartPoint中减去TextPane.StartPoint来确定偏移光标的位置:

get
{
var start = TextDocument.Selection.TextPane.StartPoint;
var top = TextDocument.Selection.TopPoint;
return new Cursor(
top.DisplayColumn - start.DisplayColumn + 1 ,
top.Line - start.Line + 1
);
}

关于visual-studio - 如何将控件叠加到Visual Studio代码图面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1619219/

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