Como: Adicionar um manipulador de eventos usando código
Este exemplo mostra como adicionar um manipulador de eventos a um elemento por meio de código.
Se você deseja adicionar um manipulador de eventos a um elemento XAML, e a página de marcação que contém o elemento já foi carregada, você deve adicionar o manipulador usando código. Como alternativa, se você estiver criando a árvore de elemento para um aplicativo usando inteiramente código e não declarando quaisquer elementos usando XAML, você pode chamar métodos específicos para adicionar manipuladores de eventos à árvore de elemento construída.
Exemplo
O exemplo a seguir adiciona um novo Button para uma página existente que está inicialmente definida em XAML. Um arquivo de código subjacente implementa um método manipulador de eventos e então adiciona esse método como um novo manipulador de eventos no Button.
O exemplo C# usa o operador += para atribuir um manipulador para um evento. Este é o mesmo operador usado para atribuir um manipulador no common language runtime (CLR) evento manipular o modelo. Microsoft Visual Basic não oferece suporte a esse operador sistema autônomo um meio de adicionar evento manipuladores. Em vez disso, ele requer uma das duas técnicas:
Use o método AddHandler, juntamente com um operador AddressOf, para fazer referência à implementação do manipulador de eventos.
Use a palavra-chave Handles como parte da definição do manipulador de eventos. Essa técnica não é mostrada aqui; consulte Visual Basic and WPF Event Handling.
<TextBlock Name="text1">Start by clicking the button below</TextBlock>
<Button Name="b1" Click="MakeButton">Make new button and add handler to it</Button>
Public Partial Class RoutedEventAddRemoveHandler
Private Sub MakeButton(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim b2 As Button = New Button()
b2.Content = "New Button"
AddHandler b2.Click, AddressOf Onb2Click
root.Children.Insert(root.Children.Count, b2)
DockPanel.SetDock(b2, Dock.Top)
text1.Text = "Now click the second button..."
b1.IsEnabled = False
End Sub
Private Sub Onb2Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
text1.Text = "New Button (b2) Was Clicked!!"
End Sub
public partial class RoutedEventAddRemoveHandler {
void MakeButton(object sender, RoutedEventArgs e)
{
Button b2 = new Button();
b2.Content = "New Button";
// Associate event handler to the button. You can remove the event
// handler using "-=" syntax rather than "+=".
b2.Click += new RoutedEventHandler(Onb2Click);
root.Children.Insert(root.Children.Count, b2);
DockPanel.SetDock(b2, Dock.Top);
text1.Text = "Now click the second button...";
b1.IsEnabled = false;
}
void Onb2Click(object sender, RoutedEventArgs e)
{
text1.Text = "New Button (b2) Was Clicked!!";
}
Observação: |
---|
Adicionar um manipulador de eventos em inicialmente analisada XAML página é muito mais simples. Dentro do elemento de objeto onde você deseja adicionar o manipulador de eventos, adicione um atributo que corresponda ao nome do evento que você deseja manipular. Então especifique o valor daquele atributo como o nome do método manipulador de eventos que você definiu no arquivo de código subjacente da página XAML. Para obter mais informações, consulte XAML Overview ou Visão geral sobre eventos roteados. |
For the complete sample, see Adicionando um exemplo de manipulador de eventos.
Consulte também
Tarefas
Adicionando um exemplo de manipulador de eventos
Conceitos
Visão geral sobre eventos roteados