WPF- возможно ли добавить событие OnVerticalOffsetChanged в пользовательское текстовое поле?
Есть ли способ для меня сделать это?
1 ответ
Решение
Вы можете узнать, когда изменяется VerticalOffset, добавив обработчик события ScrollViewer.ScrollChanged в свой TextBox. Что-то вроде этого:
<TextBox AcceptsReturn="True" ScrollViewer.ScrollChanged="TextBox_ScrollChanged" />
TextBox внутренне использует ScrollViewer, поэтому его событие ScrollChanged будет всплывать до TextBox (где вы можете его обработать). Аргументы события включают информацию о том, что изменилось, например, VerticalChange (количество, которое элемент управления прокрутил вертикально).
private void TextBox_ScrollChanged(object sender, ScrollChangedEventArgs e) {
System.Diagnostics.Debug.WriteLine(string.Format("************ {0}", e.VerticalChange));
}