FrameworkElement.Cursor Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 |