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 всегда вызывает переполох элементов.

Применяется к