我正在编写一个Visual Studio扩展,我正在创建需要在用户调整代码视图大小时调整大小的行装饰。即当用户调整Visual Studio的窗口宽度时,我会修改装饰的宽度和高度。我正在处理IWpfTextView.LayoutChanged
事件,我正在调整我的装饰。为了避免将装饰品与下面的线条重叠,我还实施了ILineTransformSource.GetLineTransform以扩大线条的高度以适应装饰的大小。
但是,当我更改装饰的尺寸时(处理IWpfTextView.LayoutChanged
事件时)我不调用我的ILineTransformSource.GetLineTransform函数来调整行变换的大小。这使得装饰物与其下方的线重叠。我似乎无法找到任何强制拨打ILineTransformSource.GetLineTransform
的方法。 (虽然,如果用户滚动视图,我会接到这些调用。但是,我不想强迫用户滚动窗口来修复视觉故障。)
有没有人知道强制Visual Studio调用我的ILineTransformSource.GetLineTransform
的方法,这样我可以在装饰物改变高度时调整线条变换的大小?
答案 0 :(得分:2)
尝试调用IWpfTextView.DisplayTextLineContainingBufferPosition方法 - 这也将强制进行GetLineTransform调用。