Поделиться через


FrameworkElement.Cursor Свойство

Определение

Получение или установка курсора, который отображается при наведении указателя мыши на этот элемент.

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

Значение свойства

Отображаемый курсор. Значение по умолчанию определяется как null для данного свойства зависимостей. Однако на практике значение по умолчанию во время выполнения зависит от множества факторов.

Примеры

В следующем примере показано, как намеренно задать графический элемент курсора.

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

Комментарии

При установке этого свойства в XAML обработчик XAML использует преобразование типов для класса для Cursor вычисления строки. Указанная строка должна иметь CursorType значение . Дополнительные сведения см. в разделе Cursor.

Будет ли отображаться курсор, установленный этим свойством, при наведении указателя мыши на этот элемент также зависит от значения ForceCursor свойства . Кроме того, связанные с событиями факторы, такие как активное перетаскивание, захват мыши, режимы редактирования текста в элементах управления и т. д., также влияют на курсор с более высоким приоритетом, чем значение, указанное в этом свойстве.

Чтобы отменить изменения поведение при установке для этого свойства конечного значения по умолчанию, снова установите для него значение null .

Значение null по умолчанию фактически означает, что определение практического значения курсора откладывается здесь и должно быть получено из другого места. При представлении без программных значений из любого источника курсор по умолчанию, который визуально находится над приложением Windows Presentation Foundation (WPF), будет стрелкой. Однако временным изменениям курсора не присваиваются Cursor значения элементов при их передаче. Свойство Cursor будет передавать значения, отличные от NULL, только в тех случаях, когда оно было задано, например с помощью кода или стиля. Каждое перемещение указателя мыши на приложение WPF вызывает QueryCursor событие . Событие пузырьков, и любой элемент вдоль маршрута имеет возможность обработать событие и задать значение курсора через аргументы этого события. В большинстве случаев это механизм, который создает визуально видимый курсор. QueryCursor Если обработчик возвращает результат курсора, то тот факт, что событие обработано и имеет измененное значение в аргументах, имеет приоритет над значением Cursor свойства на любом уровне, если ForceCursor не задано.

Если настраиваемый курсор не создается, обычно для этого свойства устанавливается значение Cursors статического свойства класса . Для настройки Cursor в коде требуется одно из следующих действий.

  • Вызовите Cursor конструктор, чтобы получить Cursor экземпляр . Обе сигнатуры конструктора Cursor используют потоки или файлы в ожидании создания Cursor объекта для пользовательского курсора.

  • CursorConverter Используйте класс и его ConvertFrom метод, чтобы указать курсор с помощью CursorType, или строку, которая может вычислить как CursorType, и привести возвращаемое значение к Cursor.

Cursor Установка пользовательского значения не включена в режиме частичного доверия. Дополнительные сведения о пользовательских курсорах см. в разделе Общие сведения о входных данных.

Сведения о свойстве зависимостей

Поле идентификатора CursorProperty
Для свойств метаданных задано значение true Нет

Применяется к

См. также раздел