Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym przykładzie pokazano, jak dodać procedurę obsługi zdarzeń do elementu przy użyciu kodu.
Jeśli chcesz dodać obsługę zdarzeń do elementu XAML, a strona kodu XAML zawierająca element została już załadowana, należy dodać obsługę zdarzenia w kodzie. Alternatywnie, jeśli tworzysz drzewo elementów dla aplikacji w całości przy użyciu kodu i nie deklarujesz żadnych elementów przy użyciu języka XAML, możesz wywołać określone metody, aby dodać programy obsługi zdarzeń do skonstruowanego drzewa elementów.
Przykład
Poniższy przykład dodaje nowy Button do istniejącej strony, która jest początkowo zdefiniowana w języku XAML. Plik związany z kodem implementuje metodę obsługi zdarzeń, a następnie dodaje tę metodę jako nową procedurę obsługi zdarzeń w Button.
Przykład w języku C# używa operatora +=
w celu przypisania procedury obsługi do zdarzenia. Jest to ten sam operator, który jest używany do przypisywania procedury obsługi w modelu obsługi zdarzeń wspólnego środowiska uruchomieniowego języka (CLR). Program Microsoft Visual Basic nie obsługuje tego operatora jako środka dodawania procedur obsługi zdarzeń. Zamiast tego wymaga jednej z dwóch technik:
Użyj metody AddHandler wraz z operatorem
AddressOf
, aby odwołać się do implementacji programu obsługi zdarzeń.Użyj słowa kluczowego
Handles
w ramach definicji procedury obsługi zdarzeń. Ta technika nie jest pokazana tutaj; zobacz Visual Basic i 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 {
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!!";
}
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
Notatka
Dodanie programu obsługi zdarzeń na stronie analizy początkowej XAML jest znacznie prostsze. W elemecie obiektu, w którym chcesz dodać procedurę obsługi zdarzeń, dodaj atrybut zgodny z nazwą zdarzenia, które ma być obsługiwane. Następnie określ wartość tego atrybutu jako nazwę metody obsługi zdarzeń zdefiniowanej w pliku kodu strony XAML. Aby uzyskać więcej informacji, zobacz XAML w WPF lub Routed Events Overview.
Zobacz też
.NET Desktop feedback