UIElement.AddHandler Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Adiciona um tratador de eventos encaminhados para um evento encaminhado especificado, adicionando o handler à coleção de handlers no elemento atual.
Sobrecargas
| Name | Description |
|---|---|
| AddHandler(RoutedEvent, Delegate) |
Adiciona um tratador de eventos encaminhados para um evento encaminhado especificado, adicionando o handler à coleção de handlers no elemento atual. |
| AddHandler(RoutedEvent, Delegate, Boolean) |
Adiciona um tratador de eventos encaminhados para um evento encaminhado especificado, adicionando o handler à coleção de handlers no elemento atual. Especifique |
AddHandler(RoutedEvent, Delegate)
Adiciona um tratador de eventos encaminhados para um evento encaminhado especificado, adicionando o handler à coleção de handlers no elemento atual.
public:
virtual void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler);
public void AddHandler(System.Windows.RoutedEvent routedEvent, Delegate handler);
abstract member AddHandler : System.Windows.RoutedEvent * Delegate -> unit
override this.AddHandler : System.Windows.RoutedEvent * Delegate -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate)
Parâmetros
- routedEvent
- RoutedEvent
Um identificador para o evento encaminhado a ser tratado.
- handler
- Delegate
Uma referência à implementação do handler.
Implementações
Observações
Podes adicionar o mesmo handler para o mesmo evento várias vezes sem levantar exceções. No entanto, o handler é na verdade invocado várias vezes quando o evento é tratado. Por isso, considere como este comportamento pode ter efeitos secundários que devem ser tidos em conta na implementação do handler.
Normalmente utiliza-se este método para fornecer a implementação do acessório "adicionar" para o padrão de acesso a eventos de Microsoft .NET de um evento personalizado encaminhado.
Aplica-se a
AddHandler(RoutedEvent, Delegate, Boolean)
Adiciona um tratador de eventos encaminhados para um evento encaminhado especificado, adicionando o handler à coleção de handlers no elemento atual. Especifique handledEventsToo que true o handler fornecido seja invocado para eventos encaminhados que já tinham sido marcados como tratados por outro elemento ao longo da rota do evento.
public:
void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler, bool handledEventsToo);
public void AddHandler(System.Windows.RoutedEvent routedEvent, Delegate handler, bool handledEventsToo);
member this.AddHandler : System.Windows.RoutedEvent * Delegate * bool -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate, handledEventsToo As Boolean)
Parâmetros
- routedEvent
- RoutedEvent
Um identificador para o evento encaminhado a ser tratado.
- handler
- Delegate
Uma referência à implementação do handler.
- handledEventsToo
- Boolean
true registar o handler de forma a que este seja invocado mesmo quando o evento encaminhado está marcado como tratado nos seus dados de evento; false para registar o manipulador com a condição padrão de que não será invocado se o evento encaminhado já estiver marcado como tratado.
A predefinição é false.
Não peça rotineiramente para retratar um evento roteado.
Exemplos
O exemplo seguinte implementa um handler invocado no Initialized evento numa página que anexa um handler definido a um dos elementos nomeados na página usando handledEventsTootrue. Este handler seria invocado mesmo que outro elemento ao longo da rota marcasse os dados do evento partilhado como tratados antes de chegar ao elemento de handling na rota.
void PrimeHandledToo(object sender, EventArgs e)
{
dpanel2.AddHandler(Button.ClickEvent, new RoutedEventHandler(GetHandledToo), true);
}
Private Sub PrimeHandledToo(ByVal sender As Object, ByVal e As EventArgs)
dpanel2.AddHandler(Button.ClickEvent, New RoutedEventHandler(AddressOf GetHandledToo), True)
End Sub
Observações
Processar eventos de entrada de baixo nível de forma prática é uma tarefa complexa. Muitos controlos implementam comportamentos em que um determinado evento é marcado como tratado e é substituído por outro evento mais intuitivo. Geralmente, um controlo só marcará um evento de entrada da plataforma como tratado se houver alguma intenção de design para tal. Em certos cenários, essas intenções de design podem não ser o que a sua gestão particular do evento de entrada exige. É para estes cenários que registar manipuladores true com handledEventsToo como é apropriado. Mas não deve fazer isto rotineiramente. Invocar handlers em resposta a todos os eventos, mesmo que sejam tratados, vai complicar a lógica de processamento de eventos da sua própria aplicação. Pode notar uma diminuição no desempenho se a lógica do handler for substancial. Deve reservar o uso de handlers anexos para eventos já tratados para situações em que já descobriu durante o processo de desenvolvimento que certos controlos estão a tratar eventos que ainda quer tratar com lógica de aplicação.
Outra técnica para evitar o comportamento de manipulação de classes de certas combinações evento-controlo é usar a alternativa de pré-visualização desse evento. Por exemplo, se MouseLeftButtonDown for marcado como tratado por tratamento de classe, podes conseguir adicionar handlers para PreviewMouseLeftButtonDown em vez disso.
Podes adicionar o mesmo handler para o mesmo evento várias vezes sem levantar exceções. No entanto, o handler é na verdade invocado várias vezes quando o evento é tratado. Por isso, considere como este comportamento pode ter efeitos secundários que devem ser tidos em conta na implementação do handler.
Normalmente utiliza-se este método para fornecer a implementação do acessório "adicionar" para o padrão de acesso a eventos de Microsoft .NET de um evento personalizado encaminhado.