Я хочу проверить, что позиция прокрутки была изменена после действия пользователя.
Я добавил для этого поле m_bScrollWillBeChangedByUser,
но это всегда правда,
потому что событие OnVerticalOffsetChanged вызывается только когда
ChangeScroll заканчивается.
Это действительно странно для меня.
Как я могу решить это?
функция:
private void ChangeScroll()
{
m_bScrollWillBeChangedByUser = false;
scrollViewer.ScrollToVerticalOffset(scrollOffset);
m_bScrollWillBeChangedByUser = true;
}
событие:
public void OnVerticalOffsetChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
if (m_bScrollWillBeChangedByUser)
{
if (m_timerUserScroll != null)
{
m_bAllowToUpdateScroll = false;
m_timerUserScroll.Stop();
m_timerUserScroll.Interval = TimeSpan.FromSeconds(m_nTrainGraphAutoScrollTimeout);
m_timerUserScroll.Start();
}
}
}