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));
}
Другие вопросы по тегам