FrameworkElement.LayoutUpdated 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 layout da árvore visual é alterado devido a propriedades relevantes ao layout alterando o valor ou alguma outra ação que atualiza o layout.
// Register
event_token LayoutUpdated(EventHandler<IInspectable> const& handler) const;
// Revoke with event_token
void LayoutUpdated(event_token const* cookie) const;
// Revoke with event_revoker
FrameworkElement::LayoutUpdated_revoker LayoutUpdated(auto_revoke_t, EventHandler<IInspectable> const& handler) const;
public event System.EventHandler<object> LayoutUpdated;
function onLayoutUpdated(eventArgs) { /* Your code */ }
frameworkElement.addEventListener("layoutupdated", onLayoutUpdated);
frameworkElement.removeEventListener("layoutupdated", onLayoutUpdated);
- or -
frameworkElement.onlayoutupdated = onLayoutUpdated;
Public Custom Event LayoutUpdated As EventHandler(Of Object)
<frameworkElement LayoutUpdated="eventhandler"/>
Tipo de evento
Comentários
LayoutUpdated é o último evento de tempo de vida do objeto a ocorrer na sequência de carga XAML antes que um controle esteja pronto para interação. No entanto, LayoutUpdated também pode ocorrer em tempo de execução durante o tempo de vida do objeto, por uma variedade de motivos: uma alteração de propriedade, um redimensionamento de janela ou uma solicitação de layout de runtime (UpdateLayout ou um modelo de controle alterado). O evento LayoutUpdated é acionado depois que todos os eventos SizeChanged em uma sequência de layout ocorrem.
LayoutUpdated pode ocorrer quando o objeto em que o manipulador está anexado não altera necessariamente nada na árvore visual sob ele. Por exemplo, imagine um contêiner de layout em que há dois elementos filho compartilhando espaço. Se o primeiro objeto alterar uma propriedade que força um novo layout, ambos os objetos dispararão LayoutUpdated porque o segundo objeto poderá ser reposicionado mesmo que seu próprio layout de subsidiária não seja alterado.
Ao manipular LayoutUpdated, não dependa do valor do remetente . Para LayoutUpdated, o remetente é sempre nulo, independentemente de onde o manipulador está anexado. Isso é para impedir que os manipuladores atribuam qualquer significado ao remetente, como implicar que foi esse elemento específico que disparou o evento para fora da árvore visual. LayoutUpdated implica que algo na árvore visual geral foi alterado e cada objeto específico em qualquer lugar da árvore tem a opção de lidar com essa ocorrência. Se você estiver familiarizado com o design de API de renderização de nível inferior, poderá equiparar LayoutUpdated sendo acionado como semelhante a um sinalizador "redraw necessário" sendo definido como parte de uma lógica de renderização de modo retido controlada por objeto.
Como LayoutUpdated é acionado em muitas circunstâncias e nem sempre é específico para um objeto que realmente muda, considere se manipular o evento SizeChanged é mais apropriado para seu cenário.
Comportamento do Windows 8
O Windows 8 teve um problema ao manter o controle de vários ouvintes para esse evento. Se você tivesse vários ouvintes/manipuladores para o evento, tentar remover um deles resultaria na remoção de todos eles. O problema é corrigido começando com Windows 8.1; remover manipuladores de eventos usando a -=
sintaxe remove corretamente apenas um ouvinte de cada vez. A maioria dos códigos não precisará de alterações ou verificações de comportamento porque lidar com vários ouvintes por evento é um cenário incomum.
Os aplicativos que foram compilados para Windows 8, mas estão sendo executados no Windows 8.1, continuam a adotar o comportamento do Windows 8.