UIElement.AddHandler Yöntem

Tanım

İşleyiciyi geçerli öğedeki işleyici koleksiyonuna ekleyerek belirtilen 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 yönlendirilmiş olay için yönlendirilmiş olay işleyicisi ekler.

AddHandler(RoutedEvent, Delegate, Boolean)

İşleyiciyi geçerli öğedeki işleyici koleksiyonuna ekleyerek belirtilen yönlendirilmiş olay için yönlendirilmiş olay işleyicisi ekler. true 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ı belirtinhandledEventsToo.

AddHandler(RoutedEvent, Delegate)

İşleyiciyi geçerli öğedeki işleyici koleksiyonuna ekleyerek belirtilen 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önlendirilmiş olayın tanımlayıcısı.

handler
Delegate

İşleyici uygulamasına başvuru.

Uygulamalar

Açıklamalar

Bir ö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 yönlendirilmiş olay için yönlendirilmiş olay işleyicisi ekler. true 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ı belirtinhandledEventsToo.

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önlendirilmiş 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 için; false İşleyiciyi, yönlendirilen olay zaten işlendi olarak işaretlenmişse çağrılmayacak varsayılan koşula kaydetmek için.

Varsayılan değer: false.

Düzenli olarak yönlendirilmiş bir olayı yeniden işlenmesini istemeyin.

Örnekler

Aşağıdaki örnek, kullanarak handledEventsTootruesayfadaki adlandırılmış öğelerden birine tanımlı bir işleyici ekleyen bir sayfadaki olay üzerinde çağrılan Initialized 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 yerini daha sezgisel başka bir olayla değiştirdiği davranışları uygular. Genel olarak, denetim yalnızca bunu yapmak için bir tasarım amacı varsa, bir platform giriş olayını işlenmiş olarak işaretler. Bazı senaryolarda, bu tasarım amaçları giriş olayını işlemeniz için gerekenlerden biri olmayabilir. İşleyicileri ile uygun şekilde true kaydeden bu senaryolar handledEventsToo 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şfetmiş olduğunuz 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.

Bir ö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