Share via


LinedFlowLayout.ItemsInfoRequested Ereignis

Definition

Tritt auf, wenn die LinedFlowLayout Größeninformationen für Elemente im und um den aktuellen Scrollansichtsport benötigt.

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

Ereignistyp

Hinweise

Dieses Ereignis wird mit dem Argument LinedFlowLayoutItemsInfoRequestedEventArgs ausgelöst, das Details zu den angeforderten Elementanpassungsinformationen bereitstellt.

Sie können die angeforderten Informationen angeben, um die Reaktionsfähigkeit der Benutzeroberfläche zu verbessern. Die Behandlung dieses Ereignisses ist optional und beeinflusst den Layoutalgorithmus, der vom LinedFlowLayout verwendet wird, auf folgende Weise.

Dieses Ereignis wird nicht behandelt, oder es werden keine Informationen zur Größenanpassung für den angeforderten Elementbereich bereitgestellt:

  • Ein zusammenhängender Bereich von Elementen wird erstellt. Standardmäßig füllen diese Elemente einen Puffer von bis zu 5 Bildlauf-Viewports, die um den derzeit sichtbaren Viewport zentriert sind. Alle anderen Elemente werden virtualisiert.
  • Nur dieser Bereich von Elementen ist angeordnet. Elemente außerhalb des Bereichs (virtualisierte Elemente) beeinflussen das Layout nicht.
  • Beim Scrollen durch die Elemente (und allgemeiner gesagt bei jedem Layoutdurchlauf) wird das ItemsInfoRequested -Ereignis ausgelöst, um erneut Größeninformationen zu sammeln.
  • Kürzlich erstellte Elemente werden verwendet, um einen durchschnittlichen Items-pro-Line-Wert zu berechnen. Diese Zahl bestimmt, wie viele Zeilen benötigt werden, um die gesamte Auflistung anzuzeigen, und die ungefähre Position jedes Elements.
  • Eine Änderung der Breite des Hostings ItemsRepeater/ItemsView kann eine durchschnittliche Element-pro-Zeile-Änderung auslösen. Je größer diese Breite ist, desto größer ist die Wahrscheinlichkeit einer durchschnittlichen Änderung von Elementen pro Zeile.
  • Ein vollständiger Neuflow der Elemente wird ausgeführt, wenn dieser durchschnittliche Artikel pro Zeile aus irgendeinem Grund zu einem neuen Wert ausgewertet wird.
  • Die Anzahl der im Puffer erstellten und angeordneten Elemente (bis zu 5 Scroll-Viewports) wird streng durch den berechneten durchschnittlichen Artikel pro Zeile erzwungen.

Bereitstellen von Größeninformationen genau für den angeforderten Elementbereich:

Führt zu den gleichen Merkmalen wie der erste Fall, außer:

  • Es werden nur bis zu 3 Bildlauf-Viewports im Wert von Elementen anstelle von 5 erstellt. Weniger erstellte Elemente führt zu einer verbesserten Leistung. Daher wird empfohlen, das ItemsInfoRequested Ereignis zu behandeln und Informationen zur Größenanpassung mindestens für den angeforderten Bereich bereitzustellen, der bis zu 5 Bildlauf-Viewports abdeckt.
  • Der durchschnittliche Artikel pro Zeile wird basierend auf den bereitgestellten Größeninformationen und nicht auf der gewünschten Größe der erstellten Elemente berechnet.
  • Wenn Sie durch die Elemente scrollen, wird das ItemsInfoRequested -Ereignis ausgelöst, um Größeninformationen für den Puffer (bis zu 5 Bildlauf-Viewports) zu sammeln, der um den neuen sichtbaren Viewport zentriert ist.

Bereitstellen von Größeninformationen für einen größeren Elementbereich als der angeforderte:

Führt zu den gleichen Merkmalen wie der erste Fall, außer:

  • Da für eine Obermenge des angeforderten Elementbereichs Informationen zur Größenanpassung bereitgestellt wurden, löst der Bildlauf nicht unbedingt das ItemsInfoRequested Ereignis aus. Solange die 5 Bildlauf-Viewports, die um den sichtbaren Viewport zentriert sind, innerhalb der bekannten Größen liegen, muss nicht ItemsInfoRequested ausgelöst werden.
  • Je größer der Elementbereich der Größeninformationen ist, die vom ItemsInfoRequested Ereignishandler bereitgestellt werden, desto weniger Vorkommen. Dadurch wird die Gesamtleistung verbessert.

Bereitstellen von Größeninformationen für die gesamte Elementsammlung:

Dieser Fall führt zu erheblich anderen Merkmalen als die drei vorherigen Fälle:

  • Bis zu 3 Bildlauf-Viewports im Wert von Elementen werden erstellt.
  • Begrenzungsrechtecke werden für alle Elemente ausgewertet, unabhängig davon, ob erstellt oder virtualisiert. Dies nutzt die Größeninformationen, die für die gesamte Sammlung bereitgestellt werden, in vollem Umfang.
  • Es gibt keine Erzwingung darüber, wie viele Elemente um den sichtbaren Viewport angeordnet sind. Die Nichteinschränkung, um einen durchschnittlichen Artikel pro Zeile zu erfüllen, kann zu einer geringeren Zuschneidung von Elementen führen. Die Gesamtzahl der Zeilen wird auch nicht durch den durchschnittlichen Artikel pro Zeile erzwungen.
  • Wenn Sie durch die Elemente scrollen, wird das ItemsInfoRequested Ereignis nie ausgelöst, da keine zusätzlichen Größeninformationen abgerufen werden müssen. Das Ereignis kann jedoch durch einen Aufruf der InvalidateItemsInfo -Methode ausgelöst werden.
  • Bei einer Breitenänderung des Hostings ItemsRepeater/ItemsView wird immer ein Neuerlauf der Elemente ausgelöst.

Gilt für: