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

ale*_*256 5 c# vsx visual-studio-2010

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

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

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

Ale*_*kin 2

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