LinedFlowLayout.ItemsInfoRequested Evento

Definición

Se produce cuando necesita LinedFlowLayout información de ajuste de tamaño para los elementos de y alrededor de la ventanilla de desplazamiento actual.

// 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) 

Tipo de evento

Comentarios

Este evento se genera con el argumento LinedFlowLayoutItemsInfoRequestedEventArgs , que proporciona detalles sobre la información de ajuste de tamaño del elemento solicitado.

Puede proporcionar la información solicitada para mejorar la capacidad de respuesta de la interfaz de usuario. El control de este evento es opcional e influye en el algoritmo de diseño empleado por LinedFlowLayout de las siguientes maneras.

No controle este evento o no proporcione información de ajuste de tamaño para el intervalo de elementos solicitados:

  • Se crea un intervalo contiguo de elementos. De forma predeterminada, esos elementos rellenan un búfer de hasta 5 ventanillas de desplazamiento, centradas alrededor de la ventanilla visible actualmente. Todos los demás elementos se virtualizan.
  • Solo se dispone ese intervalo de elementos. Los elementos fuera del intervalo (elementos virtualizados) no influyen en el diseño.
  • El desplazamiento por los elementos (y, por lo general, cada paso de diseño) desencadena el ItemsInfoRequested evento en un intento de recopilar información de tamaño de nuevo.
  • Los elementos creados recientemente se usan para calcular un valor medio de elementos por línea. Ese número determina cuántas líneas se necesitan para mostrar toda la colección y la ubicación aproximada de cada elemento.
  • Un cambio de ancho del hospedaje ItemsRepeater/ItemsView puede desencadenar o no un cambio medio de elementos por línea. Cuanto mayor sea el cambio de ancho, mayor será la posibilidad de un cambio medio de elementos por línea.
  • Un nuevo flujo completo de los elementos se realiza cuando ese promedio de elementos por línea se evalúa como un nuevo valor por cualquier motivo.
  • El número de elementos creados y dispuestos en el búfer (hasta 5 ventanillas de desplazamiento) se aplica estrictamente mediante el promedio calculado de elementos por línea.

Proporcionar información de ajuste de tamaño exactamente para el intervalo de elementos solicitados:

Da como resultado las mismas características que el primer caso, excepto:

  • Solo se crean hasta 3 ventanillas de desplazamiento por valor de elementos en lugar de 5. Menos elementos creados se traducen en un rendimiento mejorado. Por lo tanto, se recomienda controlar el ItemsInfoRequested evento y proporcionar información de ajuste de tamaño para al menos el intervalo solicitado, que cubre hasta 5 ventanillas de desplazamiento.
  • El promedio de elementos por línea se calcula en función de la información de ajuste de tamaño proporcionada y no del tamaño deseado de los elementos creados.
  • Desplazarse por los elementos desencadena el ItemsInfoRequested evento para recopilar información de tamaño del búfer (hasta 5 ventanillas de desplazamiento) centradas alrededor de la nueva ventanilla visible.

Proporcionar información de ajuste de tamaño para un intervalo de elementos mayor que el solicitado:

Da como resultado las mismas características que el primer caso, excepto:

  • Dado que se proporcionó información de ajuste de tamaño para un superconjunto del intervalo de elementos solicitados, el desplazamiento no provoca necesariamente el ItemsInfoRequested evento. Siempre que las 5 ventanillas de desplazamiento centradas alrededor de la ventanilla visible estén dentro de los tamaños conocidos, ItemsInfoRequested no es necesario generar.
  • Cuanto mayor sea el intervalo de elementos de la información de ajuste de tamaño proporcionada por el ItemsInfoRequested controlador de eventos, menos repeticiones. Esto mejora el rendimiento general.

Proporcionar información de ajuste de tamaño para toda la colección de elementos:

Este caso da como resultado características significativamente diferentes de los 3 casos anteriores:

  • Se crean hasta 3 ventanillas de desplazamiento.
  • Los rectángulos delimitadores se evalúan para todos los elementos, ya sean creados o virtualizados. Esto aprovecha al máximo la información de ajuste de tamaño proporcionada para toda la colección.
  • No hay ninguna aplicación sobre cuántos elementos se distribuyen alrededor de la ventanilla visible. No restringirse para cumplir un promedio de elementos por línea puede dar lugar a un recorte de menos elementos. El número total de líneas tampoco se aplica mediante el promedio de elementos por línea.
  • Desplazarse por los elementos nunca desencadena el ItemsInfoRequested evento porque no es necesario recuperar información adicional de ajuste de tamaño. Sin embargo, el evento se puede desencadenar mediante una llamada al InvalidateItemsInfo método .
  • Un cambio de ancho del hospedaje ItemsRepeater/ItemsView siempre desencadena un reflujo de los elementos.

Se aplica a