LinedFlowLayout.ItemsInfoRequested Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Ocorre quando as LinedFlowLayout informações de dimensionamento necessárias 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. O tratamento 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 é definido. Itens fora do intervalo (itens virtualizados) não influenciam o layout.
- Rolar os itens (e, em geral, cada passe de layout) dispara o
ItemsInfoRequestedevento 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/ItemsViewpode ou não disparar uma alteração média de itens por linha. Quanto maior a alteração de largura, maior a chance de uma alteração média de itens por linha. - Um fluxo completo dos itens é executado quando esse itens médios por linha é avaliado 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 solicitado:
Resulta nas mesmas características do primeiro caso, exceto:
- Somente até 3 visores de rolagem no valor de itens são criados em vez de 5. Menos itens criados se traduzem em melhor desempenho. Portanto, é recomendável manipular o
ItemsInfoRequestedevento 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 computados com base nas informações de dimensionamento fornecidas e não no tamanho desejado dos itens criados.
- Rolar pelos itens dispara o
ItemsInfoRequestedevento 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 necessariamente gera o
ItemsInfoRequestedevento. Desde que os 5 visores de rolagem centralizados ao redor do visor visível estejam dentro dos tamanhos conhecidos, eleItemsInfoRequestednão precisará ser acionado. - Quanto maior o intervalo de itens de informações de dimensionamento fornecidas pelo
ItemsInfoRequestedmanipulador de eventos, menos 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é 3 visores de rolagem no valor de itens são criados.
- Retângulos delimitados são avaliados para todos os itens, sejam 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 restringido para atender a uma média de itens por linha pode resultar em menos corte de itens. O número total de linhas também não é imposto pela média de itens por linha.
- Rolar pelos itens nunca dispara o
ItemsInfoRequestedevento porque nenhuma informação de dimensionamento adicional precisa ser recuperada. No entanto, o evento pode ser disparado por uma chamada para oInvalidateItemsInfométodo. - Uma alteração de largura da hospedagem
ItemsRepeater/ItemsViewsempre dispara um refluxo dos itens.