EventManager.RegisterClassHandler Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirli bir yönlendirilmiş olay için bir sınıf işleyicisi kaydeder.
Aşırı Yüklemeler
RegisterClassHandler(Type, RoutedEvent, Delegate) |
Belirli bir yönlendirilmiş olay için bir sınıf işleyicisi kaydeder. |
RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) |
Belirli bir yönlendirilmiş olay için, olay verilerinin zaten işlenmiş olarak işaretlendiği olayları işleme seçeneğiyle bir sınıf işleyicisi kaydeder. |
RegisterClassHandler(Type, RoutedEvent, Delegate)
Belirli bir yönlendirilmiş olay için bir 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şlemeyi belirten 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ı RegisterClassHandleriçin PreviewMouseRightButtonDownEventbir 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 yedekleme ile uygulanan ekli olaylar da dahil olmak üzere yönlendirilen olaylar için kullanılabilen bir özelliktir. Sınıf işleyicisi, sınıfın tüm örnekleri için var olan statik işleyici gibidir. İşleyici statik olduğundan, örnek özelliklerini doğrudan bir sınıf işleyicisi ile değiştiremezsiniz, ancak parametreler 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 özellikle 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 vardır ve "Açık" ile başlayan ve işlenen sınıfı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, imzasını handledEventsToo
kullanarak RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) ve olarak ayarlanmış şekilde çağırmak için sınıf işleyicilerini true
kaydedebilirsiniz.
Şunlara uygulanır
RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)
Belirli bir yönlendirilmiş olay için, olay verilerinin zaten işlenmiş olarak işaretlendiği olayları işleme seçeneğiyle bir sınıf işleyicisi kaydeder.
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şlemeyi belirten 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
İşleyiciyi işaretlenen herhangi bir olayda çağırmama varsayılan davranışını korumak için.
Açıklamalar
Sınıf işleme, yönlendirilmiş olay yedekleme ile uygulanan ekli olaylar da dahil olmak üzere yönlendirilen olaylar için kullanılabilen bir özelliktir. Sınıf işleyicisi, sınıfın tüm örnekleri için var olan statik işleyici gibidir. İşleyici statik olduğundan, örnek özelliklerini doğrudan bir sınıf işleyicisi ile değiştiremezsiniz, ancak parametreler 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 özellikle 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 vardır ve "Açık" ile başlayan ve işlenen sınıfı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 true
kaydedilebilir. Genel olarak, bunu yalnızca geçici olarak çözmeye çalıştığınız bilinen bir işleme sorunu varsa (fare veya klavye olaylarından giriş sistemi işleme gibi) yapmanız gerekir.