Share via


LinedFlowLayout.ItemsInfoRequested Événement

Définition

Se produit lorsque le LinedFlowLayout a besoin d’informations de dimensionnement pour les éléments dans et autour de la fenêtre d’affichage de défilement actuelle.

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

Type d'événement

Remarques

Cet événement est déclenché avec l’argument LinedFlowLayoutItemsInfoRequestedEventArgs , qui fournit des détails sur les informations de dimensionnement d’élément demandées.

Vous pouvez fournir les informations demandées pour améliorer la réactivité de l’interface utilisateur. La gestion de cet événement est facultative et influence l’algorithme de disposition utilisé par LinedFlowLayout des manières suivantes.

Ne pas gérer cet événement ou ne pas fournir d’informations de dimensionnement pour la plage d’éléments demandés :

  • Une plage contiguë d’éléments est créée. Par défaut, ces éléments remplissent une mémoire tampon d’un maximum de 5 fenêtres de défilement, centrées autour de la fenêtre d’affichage actuellement visible. Tous les autres éléments sont virtualisés.
  • Seule cette gamme d’éléments est disposée. Les éléments en dehors de la plage (éléments virtualisés) n’influencent pas la disposition.
  • Le défilement des éléments (et plus généralement de chaque passe de disposition) déclenche l’événement ItemsInfoRequested dans une tentative de collecte des informations de dimensionnement.
  • Les éléments récemment créés sont utilisés pour calculer une valeur moyenne d’éléments par ligne. Ce nombre détermine le nombre de lignes nécessaires pour afficher la collection entière et l’emplacement approximatif de chaque élément.
  • Une modification de largeur de l’hébergement ItemsRepeater/ItemsView peut ou non déclencher un changement moyen d’éléments par ligne. Plus ce changement de largeur est important, plus la probabilité d’un changement moyen d’éléments par ligne est élevée.
  • Un reflow complet des éléments est effectué lorsque cette moyenne d’éléments par ligne est évaluée à une nouvelle valeur pour une raison quelconque.
  • Le nombre d’éléments créés et disposés dans la mémoire tampon (jusqu’à 5 fenêtres d’affichage de défilement) est strictement appliqué par la moyenne calculée des éléments par ligne.

Fournir des informations de dimensionnement exactement pour la plage d’éléments demandés :

Aboutit aux mêmes caractéristiques que dans le premier cas, sauf :

  • Seules 3 fenêtres de défilement d’éléments au maximum sont créées au lieu de 5. Moins d’éléments créés se traduit par une amélioration des performances. Il est donc recommandé de gérer l’événement ItemsInfoRequested et de fournir des informations de dimensionnement pour au moins la plage demandée, qui couvre jusqu’à 5 fenêtres d’affichage de défilement.
  • La moyenne des éléments par ligne est calculée en fonction des informations de dimensionnement fournies et non de la taille souhaitée des éléments créés.
  • Le défilement des éléments déclenche l’événement ItemsInfoRequested afin de collecter des informations de dimensionnement pour la mémoire tampon (jusqu’à 5 fenêtres d’affichage de défilement) centrées autour de la nouvelle fenêtre d’affichage visible.

Fournir des informations de dimensionnement pour une plage d’éléments supérieure à celle demandée :

Aboutit aux mêmes caractéristiques que dans le premier cas, sauf :

  • Étant donné que des informations de dimensionnement ont été fournies pour un sur-ensemble de la plage d’éléments demandés, le défilement ne déclenche pas nécessairement l’événement ItemsInfoRequested . Tant que les 5 fenêtres d’affichage à défilement centrées autour de la fenêtre d’affichage visible sont dans les tailles connues, le ItemsInfoRequested n’a pas besoin d’être déclenché.
  • Plus la plage d’éléments d’informations de dimensionnement fournie par le ItemsInfoRequested gestionnaire d’événements est importante, moins il y a d’occurrences. Cela améliore les performances globales.

Fournir des informations de dimensionnement pour l’ensemble de la collection d’éléments :

Ce cas entraîne des caractéristiques significativement différentes des 3 cas précédents :

  • Jusqu’à 3 fenêtres de défilement d’éléments sont créées.
  • Les rectangles englobants sont évalués pour tous les éléments, qu’ils soient créés ou virtualisés. Cela tire pleinement parti des informations de dimensionnement fournies pour l’ensemble de la collection.
  • Il n’existe aucune application concernant le nombre d’éléments disposés autour de la fenêtre d’affichage visible. Le fait de ne pas être contraint à respecter une moyenne d’éléments par ligne peut entraîner un rognage d’élément moins. Le nombre total de lignes n’est pas non plus appliqué par la moyenne des éléments par ligne.
  • Le défilement des éléments ne déclenche jamais l’événement ItemsInfoRequested , car aucune information de dimensionnement supplémentaire ne doit être récupérée. Toutefois, l’événement peut être déclenché par un appel à la InvalidateItemsInfo méthode .
  • Un changement de largeur de l’hébergement ItemsRepeater/ItemsView déclenche toujours un nouveau flux des éléments.

S’applique à