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 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, oItemsInfoRequested
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 oInvalidateItemsInfo
método . - Uma alteração de largura da hospedagem
ItemsRepeater
/ItemsView
sempre dispara um fluxo dos itens.