Мне нужно добавить некоторое украшение в содержимое элемента управления TextBox WPF. Это прекрасно работает в принципе, я могу получить положение указанных индексов символов и компоновку моих других элементов соответственно. Но все это ломается при прокрутке TextBox. Мои позиции макета больше не совпадают с отображаемым текстом, потому что он переместился в другое место.Получить позицию прокрутки текстового поля WPF
Теперь я очень удивлен тем, что класс TextBox не предоставляет никакой информации о его состоянии прокрутки и каких-либо событиях, когда скроллинг изменился. Что я могу сделать сейчас?
Я использовал Snoop, чтобы узнать, есть ли какой-то прокрутки прокрутки, которые я мог бы задать, но ScrollContentPresenter также не имеет доступной информации прокрутки. Я бы очень хотел поместить элементы оформления прямо в прокрученную область, чтобы прокрутка также могла повлиять на них, но может быть только один элемент управления содержимым, и это уже один из внутренних элементов TextBox.
Возможно, попробуйте подписаться на прокручиваемое событие ScrollViewer.ScrollChanged? Он предоставляет информацию, такую как высота экстента, смещение прокрутки, размер видового экрана (все в горизонтальном и вертикальном размерах), возможно, это поможет. Я не совсем уверен, что понимаю вашу задачу полностью. Но попробуй. – Haspemulator