UIElement.AddHandler Yöntem

Tanım

İşleyiciyi geçerli öğedeki işleyici koleksiyonuna ekleyerek belirtilen bir yönlendirilmiş olay için yönlendirilmiş olay işleyicisi ekler.

Aşırı Yüklemeler

AddHandler(RoutedEvent, Delegate)

İşleyiciyi geçerli öğedeki işleyici koleksiyonuna ekleyerek belirtilen bir yönlendirilmiş olay için yönlendirilmiş olay işleyicisi ekler.

AddHandler(RoutedEvent, Delegate, Boolean)

İşleyiciyi geçerli öğedeki işleyici koleksiyonuna ekleyerek belirtilen bir yönlendirilmiş olay için yönlendirilmiş olay işleyicisi ekler. Sağlanan işleyicinin, olay yolu boyunca başka bir öğe tarafından işlendi olarak işaretlenmiş yönlendirilmiş olay için çağrılacağı true olarak handledEventsToo belirtin.

AddHandler(RoutedEvent, Delegate)

İşleyiciyi geçerli öğedeki işleyici koleksiyonuna ekleyerek belirtilen bir yönlendirilmiş olay için yönlendirilmiş olay işleyicisi ekler.

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)

Parametreler

routedEvent
RoutedEvent

İşlenecek yönlendirilen olayın tanımlayıcısı.

handler
Delegate

İşleyici uygulamasına başvuru.

Uygulamalar

Açıklamalar

Özel durum oluşturmadan aynı olay için aynı işleyiciyi birden çok kez ekleyebilirsiniz. Ancak, olay işlendiğinde işleyici aslında birden çok kez çağrılır. Bu nedenle, bu davranışın işleyici uygulamanızda dikkate alınması gereken yan etkileri olabileceğini göz önünde bulundurun.

Bu yöntemi genellikle özel yönlendirilmiş bir olayın Microsoft .NET olay erişim deseni için "add" erişimcisinin uygulanmasını sağlamak için kullanırsınız.

Şunlara uygulanır

AddHandler(RoutedEvent, Delegate, Boolean)

İşleyiciyi geçerli öğedeki işleyici koleksiyonuna ekleyerek belirtilen bir yönlendirilmiş olay için yönlendirilmiş olay işleyicisi ekler. Sağlanan işleyicinin, olay yolu boyunca başka bir öğe tarafından işlendi olarak işaretlenmiş yönlendirilmiş olay için çağrılacağı true olarak handledEventsToo belirtin.

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)

Parametreler

routedEvent
RoutedEvent

İşlenecek yönlendirilen olayın tanımlayıcısı.

handler
Delegate

İşleyici uygulamasına başvuru.

handledEventsToo
Boolean

İşleyiciyi, yönlendirilen olay olay verilerinde işlendiğinde bile çağrılacak şekilde kaydetmeyi true; İşlenen olay zaten işlendi olarak işaretlenmişse işleyicinin çağrılmayacak varsayılan koşulla kaydedilmesini false.

Varsayılan değer false.

Yönlendirilmiş bir olayı düzenli olarak yeniden işlenmek isteyip istemediğinizi sormayın.

Örnekler

Aşağıdaki örnek, handledEventsTootruekullanarak sayfadaki adlandırılmış öğelerden birine tanımlı işleyici ekleyen bir sayfadaki Initialized olayında çağrılan bir işleyici uygular. Yoldaki başka bir öğe, yoldaki işleme öğesine ulaşmadan önce paylaşılan olay verilerini işlendi olarak işaretlese bile bu işleyici çağrılır.

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

Açıklamalar

Düşük düzeyli giriş olaylarını pratik bir şekilde işlemek karmaşık bir görevdir. Birçok denetim, belirli bir olayın işlendi olarak işaretlendiği ve daha sezgisel başka bir olayla değiştirildiği bir davranış uygular. Genel olarak, bir denetim yalnızca bunu yapmak için bir tasarım amacı varsa bir platform giriş olayını işleniyor olarak işaretler. Bazı senaryolarda, bu tasarım amaçları giriş olayını işlemeniz için gereken şey olmayabilir. İşleyicileri true olarak handledEventsToo kaydetmenin uygun olduğu bu senaryolar içindir. Ama bunu düzenli olarak yapmamalısın. İşlenmiş olsa bile tüm olaylara yanıt olarak işleyicileri çağırmak kendi uygulama olay işleme mantığınızı karmaşıklaştırır. İşleyici mantığı önemliyse performansta düşüş görebilirsiniz. Geliştirme işlemi sırasında belirli denetimlerin hala uygulama mantığıyla işlemek istediğiniz olayları işlediğini keşfettiğiniz durumlar için zaten işlenmiş olaylar için işleyici ekleme kullanımını ayırmanız gerekir.

Belirli olay denetimi birleşimlerinin sınıf işleme davranışını önlemeye yönelik bir diğer teknik de bu olayın önizleme alternatifini kullanmaktır. Örneğin, MouseLeftButtonDown sınıf işleme tarafından işlendi olarak işaretlenirse, bunun yerine PreviewMouseLeftButtonDown için işleyiciler ekleyebilirsiniz.

Özel durum oluşturmadan aynı olay için aynı işleyiciyi birden çok kez ekleyebilirsiniz. Ancak, olay işlendiğinde işleyici aslında birden çok kez çağrılır. Bu nedenle, bu davranışın işleyici uygulamanızda dikkate alınması gereken yan etkileri olabileceğini göz önünde bulundurun.

Bu yöntemi genellikle özel yönlendirilmiş bir olayın Microsoft .NET olay erişim deseni için "add" erişimcisinin uygulanmasını sağlamak için kullanırsınız.

Şunlara uygulanır