Skip to main content
.NET Framework Class Library
UIElementOnKeyUp Method

Invoked when an unhandled KeyboardKeyUp attached event reaches an element in its route that is derived from this class. Implement this method to add class handling for this event.

Namespace:   System.Windows
Assembly:  PresentationCore (in PresentationCore.dll)
Protected Overridable Sub OnKeyUp ( _
	e As [%$TOPIC/ms599259_en-us_VS_110_2_0_0_0_0%] _
protected virtual void OnKeyUp(
	[%$TOPIC/ms599259_en-us_VS_110_2_0_1_0_0%] e
virtual void OnKeyUp(
	[%$TOPIC/ms599259_en-us_VS_110_2_0_2_0_0%]^ e
abstract OnKeyUp : 
        e:[%$TOPIC/ms599259_en-us_VS_110_2_0_3_0_0%] -> unit  
override OnKeyUp : 
        e:[%$TOPIC/ms599259_en-us_VS_110_2_0_3_0_1%] -> unit
protected function OnKeyUp(
	e : [%$TOPIC/ms599259_en-us_VS_110_2_0_4_0_0%]


Type: System.Windows.InputKeyEventArgs

The KeyEventArgs that contains the event data.


Keystrokes are handled by a dedicated input manager. Other programming features that rely on keystrokes, for example, input and command bindings, might handle the keystroke before it is exposed as a general keystroke. If these input system features mark the event as handled, then OnKeyUp is not invoked.

This method has no default implementation. Because an intermediate class in the inheritance might implement this method, we recommend that you call the base implementation in your implementation.

The purpose of this method is similar to the common language runtime (CLR) event pattern On* methods: this method provides the means to handle the matching event from derived classes by establishing a class handler instead of an instance handler. In this case the matching event is a routed event. The implementation pattern of the On* methods is different for routed events because a routed event can be raised by a child element, which is not necessarily the element that will invoke handlers. Therefore, your implementation needs to examine the source properties of the event data. It should not try to reraise the event in most cases.

Either by overriding this method or by registering class handlers with RegisterClassHandler, derived classes of UIElement can call private class handler methods when the event is received along the event route. One scenario where class handling is appropriate is to manipulate the event data and mark the routed event as handled.

Version Information

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1