Я пишу расширение Visual Studio, в котором я создаю линейные украшения, размеры которых необходимо изменить, когда пользователь изменяет размер представления кода. То есть когда пользователь изменяет ширину окна Visual Studio, я изменяю ширину и высоту украшения. Я занимаюсь событием IWpfTextView.LayoutChanged
и изменяю размеры своих украшений там. Чтобы избежать наложения украшений на линии под ним, я также реализовал ILineTransformSource.GetLineTransform, чтобы увеличить высоту линии в соответствии с размером украшений.
Однако, когда я изменяю размеры украшений (при обработке события IWpfTextView.LayoutChanged
), я не получаю вызовы моей функции ILineTransformSource.GetLineTransform для изменения размера преобразования строки. Это оставляет украшение, перекрывающее линии под ним. Кажется, я не могу найти способ заставить звонок ILineTransformSource.GetLineTransform
. (Хотя, если пользователь прокручивает представление, я получаю эти вызовы. Но я не хочу заставлять пользователя прокручивать окно, чтобы исправить визуальный сбой.)
Кто-нибудь знает, как заставить Visual Studio вызывать мой ILineTransformSource.GetLineTransform
, чтобы я мог изменить размер преобразования строки, когда мои украшения меняют высоту?