This documentation is archived and is not being maintained.

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.

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

member QueryCursor : IEvent<QueryCursorEventHandler,

<object QueryCursor="QueryCursorEventHandler" .../>

Identifier field


Routing strategy




  • There is no defined corresponding tunneling event.

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

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.

.NET Framework

Supported in: 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

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