UIElement.QueryCursor Event


Occurs when the cursor is requested to display. This event is raised on an element each time that the mouse pointer moves to a new location, which means the cursor object might need to be changed based on its new position.

 event System::Windows::Input::QueryCursorEventHandler ^ QueryCursor;
public event System.Windows.Input.QueryCursorEventHandler QueryCursor;
member this.QueryCursor : System.Windows.Input.QueryCursorEventHandler 
Public Custom Event QueryCursor As QueryCursorEventHandler 

Event Type


This event creates an alias for the Mouse.QueryCursor attached event for this class, so that QueryCursor is part of the class members list when UIElement is inherited as a base element. Event handlers that are attached to the QueryCursor event are attached to the underlying Mouse.QueryCursor attached event and receive the same event data instance.

The cursor being referred to by this event name is not necessarily the text cursor (sometimes known as the insertion point). Instead, the cursor in this context is the object that declares the onscreen graphical display related to several possible input-related devices or concepts in Windows programming. That object is represented by the Cursor class in WPF. The WPF input system enables you to change this cursor when it represents the onscreen position of the mouse pointer. You can use predefined values from the Cursors enumeration, or you can declare a custom cursor as an image file.

Listening for the QueryCursor event is not an efficient technique for cursor management. Instead, each element should define its own cursor behavior with Cursor and ForceCursor. You should only rely on QueryCursor if you are not using the WPF framework-level base elements, or in extraordinary circumstances where defining cursor behavior on a per-element basis does not meet your needs. For more information on implementing cursor behavior in response to QueryCursor, see QueryCursorEventHandler.

Routed Event Information

Identifier field QueryCursorEvent
Routing strategy Bubbling
Delegate QueryCursorEventHandler
  • There is no defined corresponding tunneling event.

  • Override OnQueryCursor to implement class handling for this event in derived classes.

Applies to

See also