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

Name Description
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. handledEventsToo 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ğını belirtintrue.

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. handledEventsToo 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ğını belirtintrue.

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

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

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, kullanarak InitializedhandledEventsToosayfadaki adlandırılmış öğelerden birine tanımlı bir işleyici ekleyen bir sayfadaki olayda çağrılan true 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 olduğu gibi handledEventsToo kaydetmenin uygun olduğu bu senaryolar true 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, sınıf işleme tarafından işlendi olarak işaretlenirse MouseLeftButtonDown , bunun yerine işleyicileri PreviewMouseLeftButtonDown 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