Share via


FrameworkElement.Cursor Properti

Definisi

Mendapatkan atau mengatur kursor yang ditampilkan saat penunjuk mouse berada di atas elemen ini.

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

Nilai Properti

Kursor yang akan ditampilkan. Nilai default didefinisikan sesuai null properti dependensi ini. Namun, default praktis pada durasi akan berasal dari berbagai faktor.

Contoh

Contoh berikut menunjukkan cara dengan sengaja mengatur grafik kursor.

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

Keterangan

Saat Anda mengatur properti ini di XAML, prosesor XAML bergantung pada konversi jenis untuk Cursor kelas guna mengevaluasi string. String yang disediakan harus dievaluasi ke CursorType nilai. Lihat Cursor untuk detailnya.

Apakah kursor seperti yang ditetapkan oleh properti ini akan atau tidak akan ditampilkan ketika penunjuk mouse berada di atas elemen ini juga tergantung pada nilai ForceCursor properti. Selain itu, pertimbangan terkait peristiwa seperti seret aktif, tangkapan mouse, mode pengeditan teks dalam kontrol, dan sebagainya, juga akan memengaruhi kursor dengan prioritas yang lebih tinggi daripada nilai yang Anda tentukan dalam properti ini.

Untuk mengembalikan perilaku pengaturan properti ini ke default akhirnya, atur kembali ke null .

Default null benar-benar berarti bahwa penentuan nilai kursor praktis ditangguhkan di sini dan harus diperoleh dari tempat lain. Jika disajikan tanpa nilai terprogram dari sumber apa pun, kursor default yang secara visual melalui aplikasi Windows Presentation Foundation (WPF) akan menjadi panah. Namun, perubahan kursor sementara tidak diatur ke Cursor nilai elemen saat diteruskan. Properti Cursor hanya akan melaporkan nilai bukan null dalam kasus di mana properti benar-benar diatur, misalnya melalui kode atau gaya. Setiap gerakan mouse di atas aplikasi WPF memunculkan QueryCursor peristiwa. Gelembung peristiwa, dan elemen apa pun di sepanjang rute memiliki kesempatan untuk menangani peristiwa dan untuk mengatur nilai kursor melalui argumen peristiwa ini. Ini adalah mekanisme yang menghasilkan kursor yang jelas secara visual dalam banyak kasus. QueryCursor Jika handler mengembalikan hasil kursor, maka fakta bahwa peristiwa ditangani dan memiliki nilai yang diubah dalam argumen lebih diutamakan daripada nilai Cursor properti pada tingkat apa pun, kecuali ForceCursor diatur.

Jika tidak membuat kursor kustom, Anda biasanya mengatur properti ini ke nilai Cursors properti statis kelas. Pengaturan Cursor dalam kode memerlukan salah satu hal berikut:

  • Cursor Panggil konstruktor untuk mendapatkan Cursor instans. Kedua tanda tangan Cursor konstruktor menggunakan aliran atau file, untuk mengantisipasi bahwa Anda membuat Cursor objek untuk kursor kustom.

  • CursorConverter Gunakan kelas dan metodenya ConvertFrom untuk menentukan kursor dengan CursorType, atau string yang dapat mengevaluasi ke CursorType, dan mentransmisikan kembali ke Cursor.

Mengatur ke Cursor nilai kustom tidak diaktifkan dalam kepercayaan parsial. Untuk informasi selengkapnya tentang kursor kustom, lihat Gambaran Umum Input.

Informasi Properti Dependensi

Bidang pengidentifikasi CursorProperty
Properti metadata diatur ke true Tidak ada

Berlaku untuk

Lihat juga