Sdílet prostřednictvím


FrameworkElement.Cursor Vlastnost

Definice

Získá nebo nastaví kurzor, který se zobrazí, když je ukazatel myši nad tímto prvkem.

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

Hodnota vlastnosti

Kurzor, který se má zobrazit. Výchozí hodnota je definována podle null této vlastnosti závislosti. Praktická výchozí hodnota za běhu však bude pocházet z různých faktorů.

Příklady

Následující příklad ukazuje, jak záměrně nastavit grafiku kurzoru.

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)
        {
            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

Poznámky

Když nastavíte tuto vlastnost v XAML, procesor XAML spoléhá na převod typu pro Cursor třídu k vyhodnocení řetězce. Zadaný řetězec by se měl vyhodnotit na CursorType hodnotu. Podrobnosti viz Cursor.

Zda kurzor vytvořený touto vlastností se zobrazí nebo nebude zobrazovat, když je ukazatel myši nad tímto prvkem, je také závislá na hodnotě ForceCursor vlastnosti. Také aspekty související s událostmi, jako je aktivní přetažení, zachycení myši, režimy úprav textu v ovládacích prvcích atd., ovlivní také kurzor s vyšší prioritou, než je hodnota zadaná v této vlastnosti.

Pokud chcete vrátit chování nastavení této vlastnosti na konečnou výchozí hodnotu, nastavte ho znovu na null hodnotu .

Výchozí null hodnota ve skutečnosti znamená, že určení praktické hodnoty kurzoru je zde odloženo a mělo by být získáno odjinud. Pokud se zobrazí bez programových hodnot z jakéhokoli zdroje, výchozí kurzor, který je vizuálně nad aplikací Windows Presentation Foundation (WPF), bude šipka. Přechodné změny kurzoru však nejsou nastaveny Cursor na hodnoty prvků při jejich předání. Vlastnost Cursor bude hlásit hodnoty, které nejsou null, pouze v případech, kdy byla skutečně nastavena, například prostřednictvím kódu nebo stylu. Každý pohyb myši nad aplikací WPF vyvolá QueryCursor událost. Bubliny události a jakýkoli prvek podél trasy mají příležitost zpracovat událost a nastavit hodnotu kurzoru prostřednictvím argumentů této události. Toto je mechanismus, který ve většině případů vytváří vizuálně zjevný kurzor. Pokud obslužná QueryCursor rutina vrátí výsledek kurzoru, má skutečnost, že událost je zpracována a má změněnou hodnotu v argumentech, přednost před hodnotou Cursor vlastnosti na libovolné úrovni, pokud není ForceCursor nastavena.

Pokud nevytvoříte vlastní kurzor, obvykle nastavíte tuto vlastnost na statickou hodnotu Cursors vlastnosti třídy . Nastavení Cursor v kódu vyžaduje jednu z následujících možností:

Cursor Nastavení na vlastní hodnotu není povoleno v částečném vztahu důvěryhodnosti. Další informace o vlastních kurzorech najdete v tématu Přehled vstupu.

Informace o vlastnosti závislosti

Pole Identifikátor CursorProperty
Vlastnosti metadat nastavené na true Žádné

Platí pro

Viz také