Visual Studio Extensibilty API を使用して、Sql Server Management Studio にアドインを作成しています。コントロールをテキスト サーフェスにオーバーレイすることに成功しました (インテリセンス コンボと同様に、CodeRush/リファクタリング アクション リストをエミュレートしようとしています) が、次のプロパティに基づいた座標空間しか見つけることができません。
get
{
var point = TextDocument.Selection.TopPoint;
return new Cursor( point.DisplayColumn, point.Line );
}
このコードを使用すると、列/行をピクセルに変換できますが、テキスト エディターが垂直または水平にスクロールされたときに列/行をオフセットする方法が見つかりません。これにより、リストボックスが表示されている画面スペースの下に表示されなくなります。
私が探しているのは、スクロールされた位置に関係なく、カーソルの隣にリストボックスを配置できるように、現在の列/行のペアから画面座標を取得する方法です。