FrameworkElement.Cursor Propiedad

Definición

Obtiene o establece el cursor que aparecerá cuando el puntero del mouse se encuentre sobre este elemento.Gets or sets the cursor that displays when the mouse pointer is over this element.

public:
 property System::Windows::Input::Cursor ^ Cursor { System::Windows::Input::Cursor ^ get(); void set(System::Windows::Input::Cursor ^ value); };
public System.Windows.Input.Cursor Cursor { get; set; }
member this.Cursor : System.Windows.Input.Cursor with get, set
Public Property Cursor As Cursor

Valor de propiedad

Cursor que se va a mostrar.The cursor to display. El valor predeterminado se define como null por esta propiedad de dependencia.The default value is defined as null per this dependency property. Sin embargo, el valor predeterminado en la práctica en tiempo de ejecución depende de diversos factores.However, the practical default at run time will come from a variety of factors.

Ejemplos

En el ejemplo siguiente se muestra cómo establecer deliberadamente el gráfico del cursor.The following example shows how to deliberately set the cursor graphic.

private void CursorTypeChanged(object sender, SelectionChangedEventArgs e)
{
    ComboBox source = e.Source as ComboBox;

    if (source != null)
    {
        ComboBoxItem selectedCursor = source.SelectedItem as ComboBoxItem;

        // Changing the cursor of the Border control 
        // by setting the Cursor property
        switch (selectedCursor.Content.ToString())
        {
            case "AppStarting":
                DisplayArea.Cursor = Cursors.AppStarting;
                break;
            case "ArrowCD":                        
                DisplayArea.Cursor = Cursors.ArrowCD;
                break;
            case "Arrow":
                DisplayArea.Cursor = Cursors.Arrow;
                break;
            case "Cross":
                DisplayArea.Cursor = Cursors.Cross;
                break;
            case "HandCursor":
                DisplayArea.Cursor = Cursors.Hand;
                break;
            case "Help":
                DisplayArea.Cursor = Cursors.Help;
                break;
            case "IBeam":
                DisplayArea.Cursor = Cursors.IBeam;
                break;
            case "No":
                DisplayArea.Cursor = Cursors.No;
                break;
            case "None":
                DisplayArea.Cursor = Cursors.None;
                break;
            case "Pen":
                DisplayArea.Cursor = Cursors.Pen;
                break;
            case "ScrollSE":
                DisplayArea.Cursor = Cursors.ScrollSE;
                break;
            case "ScrollWE":
                DisplayArea.Cursor = Cursors.ScrollWE;
                break;
            case "SizeAll":
                DisplayArea.Cursor = Cursors.SizeAll;
                break;
            case "SizeNESW":
                DisplayArea.Cursor = Cursors.SizeNESW;
                break;
            case "SizeNS":
                DisplayArea.Cursor = Cursors.SizeNS;
                break;
            case "SizeNWSE":
                DisplayArea.Cursor = Cursors.SizeNWSE;
                break;
            case "SizeWE":
                DisplayArea.Cursor = Cursors.SizeWE;
                break;
            case "UpArrow":
                DisplayArea.Cursor = Cursors.UpArrow;
                break;
            case "WaitCursor":
                DisplayArea.Cursor = Cursors.Wait;
                break;
            case "Custom":
                DisplayArea.Cursor = CustomCursor;
                break;
            default:
                break;
        }

        // If the cursor scope is set to the entire application
        // Use OverrideCursor to force the cursor for all elements
        if (cursorScopeElementOnly == false)
        {
            Mouse.OverrideCursor = DisplayArea.Cursor;
        }
    }
}
' When the Radiobox changes, a new cursor type is set
Private Sub CursorTypeChanged(ByVal sender As Object, ByVal e As SelectionChangedEventArgs)

    Dim item As String = CType(e.Source, ComboBox).SelectedItem.Content.ToString()

    Select Case item
        Case "AppStarting"
            DisplayArea.Cursor = Cursors.AppStarting
        Case "ArrowCD"
            DisplayArea.Cursor = Cursors.ArrowCD
        Case "Arrow"
            DisplayArea.Cursor = Cursors.Arrow
        Case "Cross"
            DisplayArea.Cursor = Cursors.Cross
        Case "HandCursor"
            DisplayArea.Cursor = Cursors.Hand
        Case "Help"
            DisplayArea.Cursor = Cursors.Help
        Case "IBeam"
            DisplayArea.Cursor = Cursors.IBeam
        Case "No"
            DisplayArea.Cursor = Cursors.No
        Case "None"
            DisplayArea.Cursor = Cursors.None
        Case "Pen"
            DisplayArea.Cursor = Cursors.Pen
        Case "ScrollSE"
            DisplayArea.Cursor = Cursors.ScrollSE
        Case "ScrollWE"
            DisplayArea.Cursor = Cursors.ScrollWE
        Case "SizeAll"
            DisplayArea.Cursor = Cursors.SizeAll
        Case "SizeNESW"
            DisplayArea.Cursor = Cursors.SizeNESW
        Case "SizeNS"
            DisplayArea.Cursor = Cursors.SizeNS
        Case "SizeNWSE"
            DisplayArea.Cursor = Cursors.SizeNWSE
        Case "SizeWE"
            DisplayArea.Cursor = Cursors.SizeWE
        Case "UpArrow"
            DisplayArea.Cursor = Cursors.UpArrow
        Case "WaitCursor"
            DisplayArea.Cursor = Cursors.Wait
        Case "Custom"
            DisplayArea.Cursor = CustomCursor
    End Select

    ' if the cursor scope is set to the entire application
    ' use OverrideCursor to force the cursor for all elements
    If (cursorScopeElementOnly = False) Then
        Mouse.OverrideCursor = DisplayArea.Cursor
    End If


End Sub

Comentarios

Cuando se establece esta propiedad en XAMLXAML, el procesador de XAMLXAML se basa en la conversión de tipos de la clase Cursor para evaluar la cadena.When you set this property in XAMLXAML, the XAMLXAML processor relies on type conversion for the Cursor class to evaluate the string. La cadena proporcionada debe evaluarse como un valor CursorType.The provided string should evaluate to a CursorType value. Para obtener información más detallada, vea Cursor.See Cursor for details.

El hecho de que el cursor establecido por esta propiedad o no se muestre cuando el puntero del mouse se encuentra sobre este elemento también depende del valor de la propiedad ForceCursor.Whether the cursor as established by this property will or will not display when the mouse pointer is over this element is also dependent on the value of the ForceCursor property. Además, algunas consideraciones relacionadas con los eventos, como un arrastre activo, la captura del mouse, los modos de edición de texto dentro de los controles, etc., también afectarán al cursor con mayor prioridad que el valor especificado en esta propiedad.Also, event-related considerations such as an active drag, mouse capture, text editing modes within controls, and so on, will also affect the cursor with higher priority than the value you specify in this property.

Para revertir el comportamiento del establecimiento de esta propiedad en el valor predeterminado eventual, establézcalo en null de nuevo.To revert the behavior of setting this property to the eventual default, set it to null again.

La null predeterminada realmente significa que la determinación del valor de cursor práctico se aplaza aquí y debe obtenerse a partir de otra parte.The null default really means that determination of the practical cursor value is deferred here and should be obtained from elsewhere. Si se presenta sin valores de programación de cualquier origen, el cursor predeterminado que está visualmente en una aplicación Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) será una flecha.If presented without programmatic values from any source, the default cursor that is visually over a Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) application will be an arrow. Sin embargo, los cambios de cursor transitorios no se establecen en los valores de Cursor de los elementos cuando se pasan.However, the transient cursor changes are not set to the Cursor values of the elements when they are passed over. La propiedad Cursor solo notificará valores no NULL en los casos en los que se estableció realmente, por ejemplo, mediante código o un estilo.The Cursor property will only report non null values in cases where it was actually set, for instance through code or a style. Cada movimiento del mouse sobre una aplicación WPFWPF genera un evento QueryCursor.Each movement of the mouse over a WPFWPF application raises a QueryCursor event. El evento se propaga y cualquier elemento a lo largo de la ruta tiene la oportunidad de controlar el evento y establecer el valor del cursor a través de los argumentos de este evento.The event bubbles, and any element along the route has the opportunity to handle the event and to set the value of the cursor through the arguments of this event. Este es el mecanismo que produce el cursor aparente visualmente en la mayoría de los casos.This is the mechanism that produces the visually apparent cursor in most cases. Si un controlador de QueryCursor devuelve un resultado de cursor, el hecho de que se controle el evento y tenga un valor cambiado en los argumentos tiene prioridad sobre el valor de la propiedad Cursor en cualquier nivel, a menos que se establezca ForceCursor.If a QueryCursor handler returns a cursor result, then the fact that the event is handled and has a changed value in the arguments takes precedence over the value of the Cursor property at any level, unless ForceCursor is set.

Si no está creando un cursor personalizado, normalmente se establece esta propiedad en un valor de propiedad estático de la clase Cursors.If not are not creating a custom cursor, you typically set this property to a static property value of the Cursors class. La configuración de Cursor en el código requiere una de las siguientes opciones:Setting Cursor in code requires one of the following:

  • Llame al constructor Cursor para obtener una instancia de Cursor.Call the Cursor constructor to get a Cursor instance. Ambas firmas del constructor Cursor utilizan secuencias o archivos, en previsión de que se crea el objeto Cursor para un cursor personalizado.Both signatures of the Cursor constructor use streams or files, in anticipation that you are creating the Cursor object for a custom cursor.

  • Utilice la clase CursorConverter y su método ConvertFrom para especificar un cursor por CursorType, o una cadena que se pueda evaluar como un CursorTypey convertir el valor devuelto en Cursor.Use the CursorConverter class and its ConvertFrom method to specify a cursor by CursorType, or a string that can evaluate to a CursorType, and cast the return to Cursor.

Establecer el Cursor en un valor personalizado no está habilitado en confianza parcial.Setting the Cursor to a custom value is not enabled in partial trust. Para obtener más información sobre los cursores personalizados, vea Introducción a la entrada.For more information on custom cursors, see Input Overview.

Información sobre propiedades de dependenciaDependency Property Information

Campo de identificadorIdentifier field CursorProperty
Propiedades de metadatos establecidas en trueMetadata properties set to true NoneNone

Se aplica a

Consulte también: