2011-12-30 3 views
5

사용자가 코드 뷰의 크기를 조정할 때 크기를 조정해야하는 라인 장식을 만드는 Visual Studio Extension을 작성하고 있습니다. 나는. 사용자가 Visual Studio의 창 너비를 조정하면 장식의 너비와 높이가 수정됩니다. IWpfTextView.LayoutChanged 이벤트를 처리 중이며 거기에 내 장식품의 크기를 조정하고 있습니다. adornments와 그 아래의 라인이 겹치지 않게하기 위해서, ILineTransformSource.GetLineTransform을 구현하여 라인의 높이를 확대하여 장식물의 크기를 수용했습니다. 합니다 (IWpfTextView.LayoutChanged 이벤트를 처리 할 때) 나는 장식의 크기를 변경할 때라인 장식 값을 변경하기 위해 VS 확장에서 ILineTransformSource.GetLineTransform을 강제로 호출하려면 어떻게해야합니까?

그러나, 나는 라인 변환 크기를 조정 내 ILineTransformSource.GetLineTransform 기능에 하지 받고 전화를 해요. 이렇게하면 장식이 아래 줄과 겹치게됩니다. ILineTransformSource.GetLineTransform으로 전화를 걸 수있는 방법을 찾을 수 없습니다. (비록 사용자가 뷰를 스크롤하면 이러한 호출을 얻지 만 시각적 결함을 수정하기 위해 창을 스크롤하도록 강요하지 않아도됩니다.)

방법을 알고있는 사람이 있습니까? Visual Studio에서 내 ILineTransformSource.GetLineTransform으로 전화하여 꾸미기의 높이가 바뀌면 선의 크기를 조절할 수있게합니까?

+0

이것을 알아 냈습니까? 내 장식품을위한 공간도 마련해야합니다. – jwize

답변

2

IWpfTextView.DisplayTextLineContainingBufferPosition 메서드를 호출 해보십시오. GetLineTransform 호출도 강제 실행됩니다.

+0

전화를 걸면 이러한 이벤트를 포착 할 수있는 클래스를 어떻게 배치 할 것인지 아이디어를 줄 수 있습니까? 나는 MEF를 처음 사용하므로 여기에서해야 할 일에 대해 거의 이해하지 못하고 있습니까? – jwize