如何在VS扩展中强制调用ILineTransformSource.GetLineTransform以更改线条装饰尺寸?

时间:2011-12-30 21:36:52

标签: c# visual-studio-2010 vsx

我正在编写一个Visual Studio扩展,我正在创建需要在用户调整代码视图大小时调整大小的行装饰。即当用户调整Visual Studio的窗口宽度时,我会修改装饰的宽度和高度。我正在处理IWpfTextView.LayoutChanged事件,我正在调整我的装饰。为了避免将装饰品与下面的线条重叠,我还实施了ILineTransformSource.GetLineTransform以扩大线条的高度以适应装饰的大小。

但是,当我更改装饰的尺寸时(处理IWpfTextView.LayoutChanged事件时)我调用我的ILineTransformSource.GetLineTransform函数来调整行变换的大小。这使得装饰物与其下方的线重叠。我似乎无法找到任何强制拨打ILineTransformSource.GetLineTransform的方法。 (虽然,如果用户滚动视图,我会接到这些调用。但是,我不想强​​迫用户滚动窗口来修复视觉故障。)

有没有人知道强制Visual Studio调用我的ILineTransformSource.GetLineTransform的方法,这样我可以在装饰物改变高度时调整线条变换的大小?

1 个答案:

答案 0 :(得分:2)

尝试调用IWpfTextView.DisplayTextLineContainingBufferPosition方法 - 这也将强制进行GetLineTransform调用。