我正在使用 Visual Studio 可扩展性 API 将插件写入 Sql Server Management Studio。我已经成功地将控件覆盖到文本表面上(我正在尝试模拟 CodeRush/Refactor 操作列表,类似于智能感知组合),但是我只能根据以下属性定位它的坐标空间:
get
{
var point = TextDocument.Selection.TopPoint;
return new Cursor( point.DisplayColumn, point.Line );
}
这段代码确实允许我将列/行转换为像素,但是当文本编辑器垂直或水平滚动时,我找不到偏移列/行的方法。这会导致列表框在可见屏幕空间下方消失。
我正在寻找的是一种从当前列/行对获取屏幕坐标的方法,这样我就可以将列表框放在光标旁边,而不管滚动位置如何。