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)
XML Namespace:  http://schemas.microsoft.com/winfx/2006/xaml/presentation

public event QueryCursorEventHandler QueryCursor
/** @event */
public void add_QueryCursor (QueryCursorEventHandler value)

/** @event */
public void remove_QueryCursor (QueryCursorEventHandler value)

In JScript, you can handle the events defined by a class, but you cannot define your own.
<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 refered 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.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0