Silverlight: Как определить, что вертикальная прокрутка была изменена пользователем? - PullRequest
0 голосов
/ 11 марта 2011

Я хочу проверить, что позиция прокрутки была изменена после действия пользователя. Я добавил для этого поле 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();
                }
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...