ContentElement.AddHandler Yöntem

Tanım

Belirtilen yönlendirilmiş olay için yönlendirilmiş olay işleyicisi ekler ve işleyiciyi geçerli öğedeki işleyici koleksiyonuna ekler.

Aşırı Yüklemeler

AddHandler(RoutedEvent, Delegate)

Belirtilen yönlendirilmiş olay için yönlendirilmiş olay işleyicisi ekler ve işleyiciyi geçerli öğedeki işleyici koleksiyonuna ekler.

AddHandler(RoutedEvent, Delegate, Boolean)

Belirtilen yönlendirilmiş olay için yönlendirilmiş olay işleyicisi ekler ve işleyiciyi geçerli öğedeki işleyici koleksiyonuna 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)

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

Ö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 "ekle" erişimcisinin uygulanmasını sağlamak için kullanırsınız.

Şunlara uygulanır

AddHandler(RoutedEvent, Delegate, Boolean)

Belirtilen yönlendirilmiş olay için yönlendirilmiş olay işleyicisi ekler ve işleyiciyi geçerli öğedeki işleyici koleksiyonuna 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 İşleyiciyi, 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şulla kaydetmek için.

Varsayılan değer: false.

Yönlendirilmiş bir olayı düzenli olarak yeniden ele almak istemeyin.

Örnekler

Aşağıdaki örnek, kullanarak handledEventsTootruesayfadaki adlandırılmış öğelerden birine tanımlı bir işleyici ekleyen bir sayfadaki olayda çağrılan Initialized bir işleyici uygular. Bu işleyici, yoldaki başka bir öğe, yoldaki işleme öğesine ulaşmadan önce paylaşılan olay verilerini işlendi olarak işaretlese bile ç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. Genellikle denetim, platform giriş olayını yalnızca bunu yapmak için bir tasarım amacı varsa işleniyor olarak işaretler. Bazı senaryolarda, bu tasarım amaçları giriş olayını işlemeniz için gerekenler olmayabilir. İşleyicileri 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 bir 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ışından kaçınmaya 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 "ekle" erişimcisinin uygulanmasını sağlamak için kullanırsınız.

Şunlara uygulanır