UIElement.PointerExited 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 um ponteiro sai da área de teste de clique desse elemento.
public:
virtual event PointerEventHandler ^ PointerExited;
// Register
event_token PointerExited(PointerEventHandler const& handler) const;
// Revoke with event_token
void PointerExited(event_token const* cookie) const;
// Revoke with event_revoker
UIElement::PointerExited_revoker PointerExited(auto_revoke_t, PointerEventHandler const& handler) const;
public event PointerEventHandler PointerExited;
function onPointerExited(eventArgs) { /* Your code */ }
uIElement.addEventListener("pointerexited", onPointerExited);
uIElement.removeEventListener("pointerexited", onPointerExited);
- or -
uIElement.onpointerexited = onPointerExited;
Public Custom Event PointerExited As PointerEventHandler
<uiElement PointerExited="eventhandler"/>
Tipo de evento
Comentários
O PointerExited
evento é acionado em resposta a um ponteiro que estava inicialmente na área delimitadora do elemento, deixando essa área delimitadora. As interações de toque, mouse e caneta/caneta são recebidas, processadas e gerenciadas como entrada de ponteiro no aplicativo. Qualquer um desses dispositivos e suas interações podem produzir um PointerExited
evento. Para obter mais informações, consulte Manipular entrada de ponteiro e os outros comentários neste tópico.
Use um manipulador baseado em PointerEventHandler para manipular esse evento.
Para ações de toque e também para eventos específicos de interação ou de manipulação resultantes de uma ação de toque, é preciso que o elemento esteja visível para teste de clique, para ser a origem do evento e acionar o evento associado à ação. UIElement.Visibility deve ser Visível. Outras propriedades de tipos derivados também afetam a visibilidade do teste de clique. Para saber mais, confira Visão geral de eventos e eventos roteados.
PointerExited
dá suporte à capacidade de anexar manipuladores de eventos à rota que será invocada mesmo se os dados do evento estiverem marcados como Manipulados. Consulte AddHandler.
Controles de Windows Runtime específicos podem ter tratamento baseado em classe para o PointerExited
evento de entrada. Nesse caso, o controle provavelmente tem uma substituição para o método OnPointerExited. Normalmente, o evento não é marcado como manipulado pelo manipulador de classe, portanto, o PointerExited
evento ainda pode ser manipulado pelo código do usuário para o controle na interface do usuário. Para obter mais informações sobre como funciona o tratamento baseado em classe para eventos, consulte Visão geral de eventos e eventos roteado.
Se outro elemento tiver capturado o ponteiro, PointerExited
não será disparado mesmo que o ponteiro capturado deixe os limites de um elemento. Para obter mais informações sobre a captura de ponteiro, consulte Interações com CapturePointer ou Mouse.
PointerExited para entrada de mouse e caneta/caneta
Um dispositivo de entrada do mouse tem um cursor na tela que fica visível sempre que o mouse se move, mesmo que nenhum botão do mouse seja pressionado no momento. Comportamento semelhante está disponível para entrada de dispositivo de caneta, em que os dispositivos de entrada podem detectar que a caneta está pairando sobre a superfície do dispositivo de entrada (IsInRange), mas não tocando nela. Assim, a entrada do dispositivo de mouse e caneta disparará PointerExited
eventos em casos ligeiramente diferentes dos eventos de toque. Para obter mais informações, consulte Interações por mouse. Um PointerExited
evento é acionado após o último evento PointerMoved para o elemento acionado.
PointerExited para entrada por toque
Um ponto de toque só será detectável se um dedo estiver tocando a superfície. Sempre que uma ação de toque resulta em um evento PointerReleased , esse evento é imediatamente seguido por um PointerExited
evento, com todos os dados de evento sendo as mesmas informações para os dois eventos (mesma ID de ponteiro, mesma posição e assim por diante.) Em outras palavras, o ponteiro é considerado para inserir o elemento no momento e posicionar que o elemento é tocado por um ponto de toque.
Como alternativa, um ponto de toque será gerado PointerExited
se esse ponteiro permanecer em contato constante com a superfície à medida que ele se move, estiver sobre o elemento inicialmente e, em seguida, sair dos limites de teste de clique de um elemento. Para esses tipos de ações de toque, também é possível que a ação possa ser processada como uma manipulação ou como um gesto, em vez de um evento de ponteiro. Para obter mais informações, consulte Entrada de ponteiro de identificador.
Comportamento de evento roteado para PointerExited
PointerExited
é um evento roteado. Para obter mais informações sobre o conceito de evento roteado, consulte Visão geral de eventos e eventos roteado. Você pode definir vários PointerExited
eventos para elementos em uma interface do usuário XAML, incluindo para elementos que estão em uma relação pai-filho. Em uma composição típica da interface do usuário, os elementos filho estão em algum lugar dentro dos limites de um elemento pai, portanto, o PointerExited
evento ocorrerá primeiro para o filho quando o ponteiro se mover para fora do filho e, em seguida, para o pai quando o ponteiro se mover completamente para fora desse pai. O PointerExited
evento normalmente não é bolha para o pai quando o elemento filho o dispara, pois seria confuso para o sistema de entrada rotear a ocorrência do PointerExited
evento para o pai também. Normalmente, você não quer que PointerExited
os eventos roteiem de qualquer maneira, você só deseja processá-los do remetente. Você pode impedir explicitamente o roteamento de eventos definindo Handled como true
em seu manipulador.
Em casos raros, é possível ver uma PointerExited
bolha de evento para o pai. Por exemplo, se você tiver usado um RenderTransform para deslocar um elemento filho fora dos limites de seu pai, o evento será bolhas para o pai quando o elemento filho for encerrado e fornecerá as informações do evento conforme relatado por como o elemento filho disparou o evento.
Estados visuais PointerOver para controles
Controles que têm modelos de controle podem aplicar estados visuais que estão ativos somente quando um ponteiro está sobre os limites do controle. Você nem sempre precisa lidar com PointerEntered ou PointerExited
para obter ou alterar esse comportamento. Talvez seja necessário reformular o controle. Se você estiver derivando de um controle existente que já tem o tratamento de entrada de baixo nível que invoca estados visuais, deverá fornecer um estado visual chamado "PointerOver" no VisualStateGroup "CommonStates", e a lógica de controle interna carregará esse estado visual sempre que um ponteiro estiver sobre o controle. Um estado visual para ponteiro geralmente está presente em controles que podem ser invocados ou selecionados, como um Button ou ListViewItem. Se você está derivando de uma classe base como Control que não tem tratamento de evento de entrada interno que invoca estados visuais, talvez seja necessário substituir OnPointerEntered e OnPointerExited por conta própria para obter esse comportamento. Use OnPointerExited
para chamar GoToState para carregar um estado diferente do estado "PointerOver", por exemplo , "Normal".