LinedFlowLayout.ItemsInfoRequested Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Происходит, когда требуется LinedFlowLayout
определение размера элементов в текущем окне просмотра прокрутки и вокруг нее.
// Register
event_token ItemsInfoRequested(TypedEventHandler<LinedFlowLayout, LinedFlowLayoutItemsInfoRequestedEventArgs const&> const& handler) const;
// Revoke with event_token
void ItemsInfoRequested(event_token const* cookie) const;
// Revoke with event_revoker
LinedFlowLayout::ItemsInfoRequested_revoker ItemsInfoRequested(auto_revoke_t, TypedEventHandler<LinedFlowLayout, LinedFlowLayoutItemsInfoRequestedEventArgs const&> const& handler) const;
public event TypedEventHandler<LinedFlowLayout,LinedFlowLayoutItemsInfoRequestedEventArgs> ItemsInfoRequested;
function onItemsInfoRequested(eventArgs) { /* Your code */ }
linedFlowLayout.addEventListener("itemsinforequested", onItemsInfoRequested);
linedFlowLayout.removeEventListener("itemsinforequested", onItemsInfoRequested);
- or -
linedFlowLayout.onitemsinforequested = onItemsInfoRequested;
Public Custom Event ItemsInfoRequested As TypedEventHandler(Of LinedFlowLayout, LinedFlowLayoutItemsInfoRequestedEventArgs)
Тип события
Комментарии
Это событие вызывается с помощью аргумента LinedFlowLayoutItemsInfoRequestedEventArgs , который предоставляет сведения о размере запрошенного элемента.
Вы можете указать запрошенные сведения, чтобы повысить скорость отклика пользовательского интерфейса. Обработка этого события является необязательной и влияет на алгоритм макета, используемый LinedFlowLayout следующими способами.
Не обрабатывать это событие или не предоставлять сведения о размере для запрошенного диапазона элементов:
- Создается непрерывный диапазон элементов. По умолчанию эти элементы заполняют буфер, содержащий до 5 прокручиваемых окна просмотра, центрируется вокруг видимого окна просмотра. Все остальные элементы виртуализированы.
- Выкладывается только этот диапазон элементов. Элементы за пределами диапазона (виртуализированные элементы) не влияют на макет.
- Прокрутка элементов (и, в целом, каждого прохода макета) активирует
ItemsInfoRequested
событие при попытке снова собрать сведения о размере. - Недавно созданные элементы используются для вычисления среднего значения элементов на строку. Это число определяет, сколько строк необходимо для отображения всей коллекции, и приблизительное расположение каждого элемента.
- Изменение ширины размещения
ItemsRepeater
/ItemsView
может привести к изменению среднего количества элементов на строку. Чем больше это изменение ширины, тем больше вероятность среднего изменения элементов на линию. - Полный переполох элементов выполняется, когда среднее число элементов на строку по какой-либо причине вычисляется как новое значение.
- Количество элементов, созданных и помещенных в буфер (до 5 окне просмотра прокрутки), строго определяется вычисляемым средним числом элементов на строку.
Предоставление сведений о размерах именно для запрошенного диапазона элементов:
Дает те же характеристики, что и в первом случае, за исключением:
- Вместо 5 создаются только три окна просмотра для прокрутки. Меньшее количество созданных элементов приводит к повышению производительности. Поэтому рекомендуется обрабатывать
ItemsInfoRequested
событие и предоставлять сведения о размере по крайней мере для запрошенного диапазона, который охватывает до 5 окне просмотра прокрутки. - Среднее число элементов на строку вычисляется на основе предоставленных сведений о размере, а не на требуемом размере созданных элементов.
- Прокрутка элементов активирует
ItemsInfoRequested
событие для сбора сведений о размерах буфера (до 5 прокручиваемых окна просмотра), центрированных вокруг нового видимого окна просмотра.
Предоставление сведений о размерах для большего диапазона элементов, чем запрошенный:
Дает те же характеристики, что и в первом случае, за исключением:
- Так как сведения о размере были предоставлены для надмножества запрошенного диапазона элементов, прокрутка не обязательно вызывает
ItemsInfoRequested
событие . До тех пор, пока 5 прокручиваемых окне просмотра, центрируемых вокруг видимого окна просмотра, находятся в пределах известных размеров,ItemsInfoRequested
вызывать не нужно. - Чем больше диапазон элементов сведений о размере, предоставляемых обработчиком
ItemsInfoRequested
событий, тем меньше его вхождений. Это повышает общую производительность.
Предоставление сведений о размерах для всей коллекции элементов:
В этом случае характеристики значительно отличаются от трех предыдущих случаев:
- Создается до 3 окна просмотра прокрутки, в которых содержится количество элементов.
- Ограничивающие прямоугольники оцениваются для всех элементов, как созданных, так и виртуализированных. Это в полной мере использует сведения о размере, предоставляемые для всей коллекции.
- Количество элементов, разложенных вокруг видимого окна просмотра, не применяется. Отсутствие ограничений для выполнения среднего значения элементов в строке может привести к уменьшению обрезки элементов. Общее количество строк также не обеспечивается средним числом элементов на строку.
- Прокрутка элементов никогда не активирует событие,
ItemsInfoRequested
так как не требуется извлекать дополнительные сведения о размерах. Однако событие может быть активировано вызовомInvalidateItemsInfo
метода . - Изменение ширины размещения
ItemsRepeater
/ItemsView
всегда вызывает переполох элементов.