Как определить, когда ScrollViewer заканчивает прокрутку? - PullRequest
0 голосов
/ 13 июня 2018

Кстати, я использую UWP на случай, если это имеет значение.Поэтому я использую ListView, и ко всем ListViews прикреплен ScrollViewer (по умолчанию в шаблоне).Проблема в том, что я не могу найти событие (в самом ListView или в его ScrollViewer), которое срабатывает, когда ListView заканчивает прокрутку.

Я использовал метод scrollViewer.ChangeView () для автоматической прокрутки к началуListView и использует анимацию для прокрутки к вершине, поэтому я думаю, что это как-то связано с тем, что событие ViewChanged срабатывает до завершения анимации.Если я прав в этом, тогда должен быть способ определить, завершена ли анимация, потому что я должен быть предупрежден, когда ListView снова полностью бездействует, то есть только когда анимация прокрутки завершается.Спасибо.

1 Ответ

0 голосов
/ 13 июня 2018

Вы можете подключить событие scrollViewer ViewChanged и проверить IsIntermediate аргумента события.

private void ScrollViewer_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
{
    if (e.IsIntermediate)
    {
        System.Diagnostics.Debug.WriteLine("scroll ongoing");
    }
    else
    {
        System.Diagnostics.Debug.WriteLine("scroll finish");
    }
}

Это событие вызывается несколько раз.Когда свиток заканчивается, IsIntermediate ложно.

...