FrameworkElement.Cursor Proprietà

Definizione

Recupera o imposta il cursore visualizzato quando il puntatore del mouse è posizionato sull'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

Valore della proprietà

Cursore da visualizzare.The cursor to display. Il valore predefinito è definito come null in base a questa proprietà di dipendenza.The default value is defined as null per this dependency property. Tuttavia, l'impostazione predefinita pratica in fase di esecuzione dipenderà da numerosi fattori.However, the practical default at run time will come from a variety of factors.

Esempi

Nell'esempio seguente viene illustrato come impostare intenzionalmente la rappresentazione grafica del cursore.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

Commenti

Quando si imposta questa proprietà in XAMLXAML, il processore XAMLXAML si basa sulla conversione del tipo per la classe Cursor per valutare la stringa.When you set this property in XAMLXAML, the XAMLXAML processor relies on type conversion for the Cursor class to evaluate the string. La stringa specificata deve restituire un valore CursorType.The provided string should evaluate to a CursorType value. Per informazioni dettagliate, vedere Cursor.See Cursor for details.

Se il cursore stabilito da questa proprietà non verrà visualizzato quando il puntatore del mouse è posizionato sull'elemento dipende anche dal valore della proprietà 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. Inoltre, le considerazioni relative agli eventi, ad esempio il trascinamento attivo, l'acquisizione del mouse, le modalità di modifica del testo all'interno dei controlli e così via, avranno effetto anche sul cursore con priorità più elevata rispetto al valore specificato in questa proprietà.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.

Per ripristinare il comportamento dell'impostazione di questa proprietà sul valore predefinito finale, impostarlo su null nuovamente.To revert the behavior of setting this property to the eventual default, set it to null again.

Il null valore predefinito significa che la determinazione del valore del cursore pratico è rinviata in questo punto e deve essere ottenuta da un'altra posizione.The null default really means that determination of the practical cursor value is deferred here and should be obtained from elsewhere. Se viene presentata senza valori programmatici da qualsiasi origine, il cursore predefinito visualizzato su un'applicazione Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) sarà una freccia.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. Tuttavia, le modifiche ai cursori temporanei non vengono impostate sui valori Cursor degli elementi quando vengono passati.However, the transient cursor changes are not set to the Cursor values of the elements when they are passed over. La proprietà Cursor restituirà solo i valori non null nei casi in cui è stata effettivamente impostata, ad esempio tramite codice o uno stile.The Cursor property will only report non null values in cases where it was actually set, for instance through code or a style. Ogni movimento del mouse su un'applicazione WPFWPF genera un evento di QueryCursor.Each movement of the mouse over a WPFWPF application raises a QueryCursor event. L'evento Bubbles e qualsiasi elemento lungo la Route hanno la possibilità di gestire l'evento e di impostare il valore del cursore tramite gli argomenti di questo 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. Si tratta del meccanismo che produce il cursore visivamente evidente nella maggior parte dei casi.This is the mechanism that produces the visually apparent cursor in most cases. Se un gestore di QueryCursor restituisce un risultato di cursore, il fatto che l'evento venga gestito e con un valore modificato negli argomenti avrà la precedenza sul valore della proprietà Cursor a qualsiasi livello, a meno che non sia impostato 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.

Se non si crea un cursore personalizzato, in genere questa proprietà viene impostata su un valore statico della proprietà della classe Cursors.If not are not creating a custom cursor, you typically set this property to a static property value of the Cursors class. Per impostare Cursor nel codice è necessario uno degli elementi seguenti:Setting Cursor in code requires one of the following:

  • Chiamare il costruttore Cursor per ottenere un'istanza di Cursor.Call the Cursor constructor to get a Cursor instance. Entrambe le firme del costruttore Cursor utilizzano flussi o file, in previsione della creazione dell'oggetto Cursor per un cursore personalizzato.Both signatures of the Cursor constructor use streams or files, in anticipation that you are creating the Cursor object for a custom cursor.

  • Usare la classe CursorConverter e il relativo metodo ConvertFrom per specificare un cursore per CursorTypeo una stringa che può restituire un CursorTypee per eseguire il cast della restituzione a 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.

L'impostazione del Cursor su un valore personalizzato non è abilitata in attendibilità parziale.Setting the Cursor to a custom value is not enabled in partial trust. Per altre informazioni sui cursori personalizzati, vedere Cenni preliminari sull'input.For more information on custom cursors, see Input Overview.

Informazioni proprietà di dipendenzaDependency Property Information

Campo identificatoreIdentifier field CursorProperty
Proprietà dei metadati impostate su trueMetadata properties set to true nessunoNone

Si applica a

Vedi anche