EventManager.RegisterClassHandler Yöntem

Tanım

Belirli bir yönlendirilmiş olay için sınıf işleyicisi kaydeder.

Aşırı Yüklemeler

Name Description
RegisterClassHandler(Type, RoutedEvent, Delegate)

Belirli bir yönlendirilmiş olay için sınıf işleyicisi kaydeder.

RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)

Belirli bir yönlendirilmiş olay için bir sınıf işleyicisi kaydeder ve olay verilerinin zaten işlenmiş olarak işaretlendiği olayları işleme seçeneğiyle birlikte.

RegisterClassHandler(Type, RoutedEvent, Delegate)

Belirli bir yönlendirilmiş olay için sınıf işleyicisi kaydeder.

public:
 static void RegisterClassHandler(Type ^ classType, System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler);
public static void RegisterClassHandler(Type classType, System.Windows.RoutedEvent routedEvent, Delegate handler);
static member RegisterClassHandler : Type * System.Windows.RoutedEvent * Delegate -> unit
Public Shared Sub RegisterClassHandler (classType As Type, routedEvent As RoutedEvent, handler As Delegate)

Parametreler

classType
Type

Sınıf işleme bildiriminde bulunan sınıfın türü.

routedEvent
RoutedEvent

İşlenmek üzere olayın yönlendirilmiş olay tanımlayıcısı.

handler
Delegate

Sınıf işleyicisi uygulamasına başvuru.

Örnekler

Aşağıdaki örnek, çağrısı PreviewMouseRightButtonDownEventiçin RegisterClassHandlerbir işleyici ekler.

static MyEditContainer()
{
  EventManager.RegisterClassHandler(typeof(MyEditContainer), PreviewMouseRightButtonDownEvent, new RoutedEventHandler(LocalOnMouseRightButtonDown));
}
internal static void LocalOnMouseRightButtonDown(object sender, RoutedEventArgs e)
{
  MessageBox.Show("this is invoked before the On* class handler on UIElement");
  //e.Handled = true; //uncommenting this would cause ONLY the subclass' class handler to respond
}
Shared Sub New()
  EventManager.RegisterClassHandler(GetType(MyEditContainer), PreviewMouseRightButtonDownEvent, New RoutedEventHandler(AddressOf LocalOnMouseRightButtonDown))
End Sub
Friend Shared Sub LocalOnMouseRightButtonDown(ByVal sender As Object, ByVal e As RoutedEventArgs)
  MessageBox.Show("this is invoked before the On* class handler on UIElement")
  'e.Handled = True //uncommenting this would cause ONLY the subclass' class handler to respond
End Sub

Açıklamalar

Sınıf işleme, yönlendirilmiş olay yedeklemesi ile uygulanan ekli olaylar da dahil olmak üzere yönlendirilmiş olaylar için kullanılabilen bir özelliktir. Sınıf işleyicisi, sınıfın tüm örnekleri için var olan statik bir işleyici gibidir. İşleyici statik olduğundan, örnek özelliklerini doğrudan bir sınıf işleyicisiyle değiştiremezsiniz, ancak parametrelere ve/veya olay verileri aracılığıyla sender örneklere erişebilirsiniz.

Sınıf işleyicileri örnek işleyicilerinden önce çağrılır. Olayı işlenmiş olarak işaretleme davranışına sahip bir sınıf işleyicisi uygulayabilirsiniz. Bu nedenle, örnek işleyicileri özel olarak işlenen olaylar için kaydedilmediği sürece sınıf tarafından işlenen bir olay için örnek işleyicileri çağrılmaz.

WPF temel öğe olaylarının çoğu, sınıf işleme sanal yöntemleri sağlar. Temel sınıfları devralan sınıflarda bu yöntemleri geçersiz kılarak, statik oluşturucularda çağırmadan RegisterClassHandler sınıf işleme uygulayabilirsiniz. Bu sınıf işleme yöntemleri genellikle giriş olayları için mevcuttur ve "Açık" ile başlayan ve işlenen olayın adıyla biten adlara sahiptir.

Sınıf işleme hakkında daha fazla bilgi için bkz. Yönlendirilen Olayları İşlenmiş Olarak İşaretleme ve Sınıf İşleme.

Bu imza kullanılarak, sınıf işleyicileri yalnızca işlenmeyen olaylara yanıt olarak çağrılacak şekilde kaydedilir. Ayrıca, olay bağımsız değişkenleri işlendi olarak işaretlenmiş olsa bile çağırmak için sınıf işleyicilerini kaydedebilirsiniz.RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)handledEventsTootrue

Şunlara uygulanır

RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)

Belirli bir yönlendirilmiş olay için bir sınıf işleyicisi kaydeder ve olay verilerinin zaten işlenmiş olarak işaretlendiği olayları işleme seçeneğiyle birlikte.

public:
 static void RegisterClassHandler(Type ^ classType, System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler, bool handledEventsToo);
public static void RegisterClassHandler(Type classType, System.Windows.RoutedEvent routedEvent, Delegate handler, bool handledEventsToo);
static member RegisterClassHandler : Type * System.Windows.RoutedEvent * Delegate * bool -> unit
Public Shared Sub RegisterClassHandler (classType As Type, routedEvent As RoutedEvent, handler As Delegate, handledEventsToo As Boolean)

Parametreler

classType
Type

Sınıf işleme bildiriminde bulunan sınıfın türü.

routedEvent
RoutedEvent

İşlenmek üzere olayın yönlendirilmiş olay tanımlayıcısı.

handler
Delegate

Sınıf işleyicisi uygulamasına başvuru.

handledEventsToo
Boolean

true yönlendirilen olayın bağımsız değişkenleri işlendi olarak işaretlenmiş olsa bile bu sınıf işleyicisini çağırmak için; false İşlenmiş herhangi bir olayda işleyiciyi çağırmama varsayılan davranışını korumak için.

Açıklamalar

Sınıf işleme, yönlendirilmiş olay yedeklemesi ile uygulanan ekli olaylar da dahil olmak üzere yönlendirilmiş olaylar için kullanılabilen bir özelliktir. Sınıf işleyicisi, sınıfın tüm örnekleri için var olan statik bir işleyici gibidir. İşleyici statik olduğundan, örnek özelliklerini doğrudan bir sınıf işleyicisiyle değiştiremezsiniz, ancak parametrelere ve/veya olay verileri aracılığıyla sender örneklere erişebilirsiniz.

Sınıf işleyicileri örnek işleyicilerinden önce çağrılır. Olayı işlenmiş olarak işaretleme davranışına sahip bir sınıf işleyicisi uygulayabilirsiniz. Bu nedenle, örnek işleyicileri özel olarak işlenen olaylar için kaydedilmediği sürece sınıf tarafından işlenen bir olay için örnek işleyicileri çağrılmaz.

WPF temel öğe olaylarının çoğu, sınıf işleme sanal yöntemleri sağlar. Temel sınıfları devralan sınıflarda bu yöntemleri geçersiz kılarak, statik oluşturucularda çağırmadan RegisterClassHandler sınıf işleme uygulayabilirsiniz. Bu sınıf işleme yöntemleri genellikle giriş olayları için mevcuttur ve "Açık" ile başlayan ve işlenen olayın adıyla biten adlara sahiptir.

Sınıf işleme hakkında daha fazla bilgi için bkz. Yönlendirilen Olayları İşlenmiş Olarak İşaretleme ve Sınıf İşleme.

Bu imza kullanılarak, sınıf işleyicileri olarak ayarlanarak handledEventsToo işlenen olaylar üzerine çağrılacak şekilde truekaydedilebilir. Genellikle, bunu yalnızca fare veya klavye olaylarından giriş sistemi işleme gibi geçici olarak çözmeye çalıştığınız bilinen bir işleme sorunu varsa yapmanız gerekir.

Şunlara uygulanır