Compartilhar via


LinedFlowLayout.ItemsInfoRequested Evento

Definição

Ocorre quando o LinedFlowLayout precisa de informações de dimensionamento para itens dentro e ao redor do visor de rolagem atual.

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

Comentários

Esse evento é gerado com o argumento LinedFlowLayoutItemsInfoRequestedEventArgs , que fornece detalhes sobre as informações de dimensionamento de item solicitadas.

Você pode fornecer as informações solicitadas para melhorar a capacidade de resposta da interface do usuário. A manipulação desse evento é opcional e influencia o algoritmo de layout empregado pelo LinedFlowLayout das seguintes maneiras.

Não está tratando esse evento ou não fornece informações de dimensionamento para o intervalo de itens solicitado:

  • Um intervalo contíguo de itens é criado. Por padrão, esses itens preenchem um buffer de até 5 visores de rolagem, centralizados ao redor do visor visível no momento. Todos os outros itens são virtualizados.
  • Somente esse intervalo de itens é disposto. Itens fora do intervalo (itens virtualizados) não influenciam o layout.
  • Rolar pelos itens (e, em geral, cada passagem de layout) dispara o ItemsInfoRequested evento na tentativa de coletar informações de dimensionamento novamente.
  • Os itens criados recentemente são usados para calcular um valor médio de itens por linha. Esse número determina quantas linhas são necessárias para exibir toda a coleção e a localização aproximada de cada item.
  • Uma alteração de largura da hospedagem ItemsRepeater/ItemsView pode ou não disparar uma alteração média de itens por linha. Quanto maior a mudança de largura, maior a chance de uma alteração média de itens por linha.
  • Um fluxo completo dos itens é executado quando essa média de itens por linha é avaliada como um novo valor por qualquer motivo.
  • O número de itens criados e dispostos no buffer (até 5 visores de rolagem) é estritamente imposto pelos itens médios computados por linha.

Fornecendo informações de dimensionamento exatamente para o intervalo de itens solicitados:

Resulta nas mesmas características do primeiro caso, exceto:

  • Somente até três visores de rolagem no valor de itens são criados em vez de 5. Menos itens criados são convertidos em melhor desempenho. Portanto, é recomendável manipular o ItemsInfoRequested evento e fornecer informações de dimensionamento para pelo menos o intervalo solicitado, que abrange até 5 visores de rolagem.
  • Os itens médios por linha são calculados com base nas informações de dimensionamento fornecidas e não no tamanho desejado dos itens criados.
  • Rolar pelos itens dispara o ItemsInfoRequested evento para coletar informações de dimensionamento para o buffer (até 5 visores de rolagem) centralizados ao redor do novo visor visível.

Fornecendo informações de dimensionamento para um intervalo de itens maior do que o solicitado:

Resulta nas mesmas características do primeiro caso, exceto:

  • Como as informações de dimensionamento foram fornecidas para um superconjunto do intervalo de itens solicitado, a rolagem não gera necessariamente o ItemsInfoRequested evento. Desde que os 5 visores de rolagem centralizados ao redor do visor visível estejam dentro dos tamanhos conhecidos, o ItemsInfoRequested não precisa ser gerado.
  • Quanto maior o intervalo de itens de informações de dimensionamento fornecidas pelo ItemsInfoRequested manipulador de eventos, menos suas ocorrências. Isso melhora o desempenho geral.

Fornecendo informações de dimensionamento para toda a coleção de itens:

Esse caso resulta em características significativamente diferentes dos três casos anteriores:

  • Até três visores de rolagem no valor de itens são criados.
  • Retângulos delimitados são avaliados para todos os itens, sejam eles criados ou virtualizados. Isso aproveita ao máximo as informações de dimensionamento fornecidas para toda a coleção.
  • Não há nenhuma imposição sobre quantos itens são dispostos ao redor do visor visível. Não ser restrito para atender a uma média de itens por linha pode resultar em menos corte de item. O número total de linhas também não é imposto pelos itens médios por linha.
  • Rolar pelos itens nunca dispara o ItemsInfoRequested evento porque nenhuma informação de dimensionamento adicional precisa ser recuperada. No entanto, o evento pode ser disparado por uma chamada para o InvalidateItemsInfo método .
  • Uma alteração de largura da hospedagem ItemsRepeater/ItemsView sempre dispara um fluxo dos itens.

Aplica-se a