виртуализация стаппанель и высота - PullRequest
1 голос
/ 09 ноября 2011

Если у меня есть панель виртуализации внутри моего прокрутки, то как мой прокручиватель узнает, какой должна быть высота полосы прокрутки?

Например, если у меня 10000 элементов, как он узнает, что прокрутил только 5 процентоввниз по списку?

Что делать, если я не знаю размер предметов?

1 Ответ

0 голосов
/ 09 ноября 2011

это действительно хороший ресурс, внизу вы можете скачать пример проекта.Я думаю, что вы ищете в функциях GetFirstVisibleIndex и GetLastVisibleIndex.Я перечислил их ниже для удобства.По сути, у вас будет отслеживание смещения, насколько далеко находится «верх» вашего списка.это в сочетании с размером элементов поможет получить значения, которые вы ищете

 private int GetFirstVisibleIndex()
 {
    return (int)Math.Floor(_offset.Y / _itemSize.Height);
 }

 private int GetLastVisibleIndex()
 {
    return Math.Min((int)Math.Ceiling((_offset.Y + _viewport.Height) / _itemSize.Height) - 1, GetItemsCount() - 1);
 }
...