FrameworkElement.Cursor Propiedad

Definición

Obtiene o establece el cursor que aparecerá cuando el puntero del mouse se encuentre sobre este elemento.

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. El valor predeterminado se define como null por esta propiedad de dependencia. Sin embargo, el valor predeterminado en la práctica en tiempo de ejecución depende de diversos factores.

Ejemplos

En el ejemplo siguiente se muestra cómo establecer deliberadamente el gráfico del cursor.

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

Al establecer esta propiedad en XAML, el procesador XAML se basa en la conversión de tipos para que la Cursor clase evalúe la cadena. La cadena proporcionada debe evaluarse como un CursorType valor. Para obtener información detallada, vea Cursor.

Si el cursor establecido por esta propiedad se mostrará o no cuando el puntero del mouse esté sobre este elemento también depende del valor de la ForceCursor propiedad. Además, las consideraciones relacionadas con eventos, como una arrastrar activa, 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 que especifique en esta propiedad.

Para revertir el comportamiento de establecer esta propiedad en el valor predeterminado final, establézcalo null en de nuevo.

El null valor predeterminado significa realmente que la determinación del valor práctico del cursor se aplaza aquí y debe obtenerse de otro lugar. Si se presenta sin valores de programación de ningún origen, el cursor predeterminado que se encuentra visualmente sobre una aplicación de Windows Presentation Foundation (WPF) será una flecha. Sin embargo, los cambios transitorios del cursor no se establecen en los Cursor valores de los elementos cuando se pasan. La Cursor propiedad solo notificará valores no NULL en los casos en los que se estableció realmente, por ejemplo a través del código o un estilo. Cada movimiento del mouse sobre una aplicación WPF genera un QueryCursor evento. Los eventos se propagan y cualquier elemento 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. Este es el mecanismo que genera el cursor visualmente aparente en la mayoría de los casos. Si un QueryCursor controlador devuelve un resultado de cursor, el hecho de que el evento se controla y tiene un valor cambiado en los argumentos tiene prioridad sobre el valor de la Cursor propiedad en cualquier nivel, a menos ForceCursor que se establezca.

Si no se crea un cursor personalizado, normalmente se establece esta propiedad en un valor de propiedad estático de la Cursors clase . La configuración Cursor en el código requiere una de las siguientes opciones:

  • Llame al Cursor constructor para obtener una Cursor instancia. Ambas firmas del Cursor constructor usan secuencias o archivos, en previsión de que está creando el Cursor objeto para un cursor personalizado.

  • Use la CursorConverter clase y su ConvertFrom método para especificar un cursor por CursorType, o una cadena que pueda evaluarse como y CursorTypeconvertir el valor devuelto en Cursor.

Establecer en Cursor un valor personalizado no está habilitado en confianza parcial. Para obtener más información sobre los cursores personalizados, consulte Introducción a la entrada.

Información sobre propiedades de dependencia

Campo identificador CursorProperty
Propiedades de metadatos establecidas en true None

Se aplica a

Consulte también