Nasıl yapılır: Kod Kullanarak bir Olay İşleyicisi Ekleme
Bu örnekte, kod kullanarak bir öğeye olay işleyicisi ekleme gösterilmektedir.
Bir XAML öğesine olay işleyicisi eklemek istiyorsanız ve öğesini içeren işaretleme sayfası zaten yüklenmişse, kod kullanarak işleyiciyi eklemeniz gerekir. Alternatif olarak, bir uygulama için öğe ağacını tamamen kod kullanarak oluşturuyorsanız ve XAML kullanarak herhangi bir öğe bildirmiyorsanız, belirli yöntemleri çağırarak, oluşturduğunuz öğe ağacına olay işleyicileri ekleyebilirsiniz.
Örnek
Aşağıdaki örnek, başlangıçta XAML'de tanımlanan mevcut bir sayfaya yeni Button bir ekler. Arka planda kod dosyası bir olay işleyicisi yöntemi uygular ve ardından bu yöntemi üzerinde Buttonyeni bir olay işleyicisi olarak ekler.
C# örneği, bir olaya işleyici atamak için işlecini kullanır +=
. Bu, ortak dil çalışma zamanı (CLR) olay işleme modelinde işleyici atamak için kullanılan işleçle aynıdır. Microsoft Visual Basic, olay işleyicileri ekleme aracı olarak bu işleci desteklemez. Bunun yerine iki teknikten birini gerektirir:
Olay işleyicisi uygulamasına AddHandler başvurmak için yöntemini bir
AddressOf
işleçle birlikte kullanın.Handles
Olay işleyicisi tanımının bir parçası olarak anahtar sözcüğünü kullanın. Bu teknik burada gösterilmez; bkz. Visual Basic ve WPF Olay İşleme.
<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
Dekont
Başlangıçta ayrıştırılan XAML sayfasına olay işleyicisi eklemek çok daha basittir. Olay işleyicisini eklemek istediğiniz nesne öğesinin içinde, işlemek istediğiniz olayın adıyla eşleşen bir öznitelik ekleyin. Ardından, XAML sayfasının arka planda kod dosyasında tanımladığınız olay işleyici yönteminin adı olarak bu özniteliğin değerini belirtin. Daha fazla bilgi için bkz . WPF'de XAML veya Yönlendirilmiş Olaylara Genel Bakış.
Ayrıca bkz.
.NET Desktop feedback
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin