Я пишу надстройку в Sql Server Management Studio, используя API-интерфейсы Visual Studio Extensibilty. У меня был некоторый успех при наложении элемента управления на текстовую поверхность (я пытаюсь эмулировать список действий CodeRush / Refactor, похожий на комбо intellisense), однако я могу найти только его координатное пространство на основе следующего свойства:
get
{
var point = TextDocument.Selection.TopPoint;
return new Cursor( point.DisplayColumn, point.Line );
}
Этот код позволяет мне затем преобразовывать столбцы / строки в пиксели, однако я не могу найти способ сместить столбцы / строки, когда текстовый редактор прокручивается либо вертикально, либо горизонтально. Это приводит к тому, что список исчезает под видимым пространством экрана.
То, что я ищу, - это метод получения экранных координат из текущей пары столбцов / строк, так что я могу разместить список рядом с курсором, независимо от позиции прокрутки.