EventManager.RegisterClassHandler Method (Type, RoutedEvent, Delegate, Boolean)

Registers a class handler for a particular routed event, with the option to handle events where event data is already marked handled.

Namespace:  System.Windows
Assembly:  PresentationCore (in PresentationCore.dll)

public static void RegisterClassHandler(
	Type classType,
	RoutedEvent routedEvent,
	Delegate handler,
	bool handledEventsToo
)

Parameters

classType
Type: System.Type

The type of the class that is declaring class handling.

routedEvent
Type: System.Windows.RoutedEvent

The routed event identifier of the event to handle.

handler
Type: System.Delegate

A reference to the class handler implementation.

handledEventsToo
Type: System.Boolean

true to invoke this class handler even if arguments of the routed event have been marked as handled; false to retain the default behavior of not invoking the handler on any marked-handled event.

Class handling is a feature that is available for routed events, including attached events that are implemented with routed event backing. A class handler is like a static handler that exists for all instances of the class. Because the handler is static, you cannot change instance properties directly with a class handler, but you can access instances through the sender parameter and/or the event data.

Class handlers are invoked before instance handlers. You can implement a class handler that has the behavior of marking the event as handled. Therefore, instance handlers for a class-handled event are not invoked unless the instance handlers register specifically for handled events.

Many of the WPF base element events provide class handling virtual methods. By overriding these methods in classes that inherit the base classes, you can implement class handling without calling RegisterClassHandler in static constructors. These class handling methods typically exist for input events and have names that start with "On" and end with the name of the event being class handled.

For more information about class handling, see Marking Routed Events as Handled, and Class Handling.

Using this signature, class handlers can be registered to invoke upon handled events, by setting handledEventsToo set to true. Generally, you should do this only if there is a known handling issue you are trying to work around, such as input system handling from mouse or keyboard events.

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft