FrameworkElement.Cursor FrameworkElement.Cursor FrameworkElement.Cursor FrameworkElement.Cursor Property

定義

この要素上にマウス ポインターが置かれたときに表示されるカーソルを取得または設定します。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

プロパティ値

表示対象のカーソル。The cursor to display. 既定値はこの依存関係プロパティごとに null として定義されます。The default value is defined as null per this dependency property. ただし、実行時における実用的な既定値は、さまざまな要因から取得されます。However, the practical default at run time will come from a variety of factors.

次の例は、カーソルグラフィックを意図的に設定する方法を示しています。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

注釈

XAMLXAMLこのプロパティを設定すると、 XAMLXAMLプロセッサは、 Cursorクラスの型変換に依存して文字列を評価します。When you set this property in XAMLXAML, the XAMLXAML processor relies on type conversion for the Cursor class to evaluate the string. 指定された文字列は、 CursorType値に評価される必要があります。The provided string should evaluate to a CursorType value. 詳細については、「Cursor」を参照してください。See Cursor for details.

このプロパティによって確立されたカーソルは、マウスポインターがこの要素の上にあるときに表示されるかどうか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. また、アクティブなドラッグ、マウスのキャプチャ、コントロール内のテキスト編集モードなどのイベント関連の考慮事項は、このプロパティで指定した値よりも優先順位の高いカーソルにも影響します。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.

このプロパティが最終的な既定値に設定される動作を元に戻すnullには、をに設定します。To revert the behavior of setting this property to the eventual default, set it to null again.

既定nullでは、実際のカーソル値の決定はここで遅延され、他の場所から取得する必要があることを意味します。The null default really means that determination of the practical cursor value is deferred here and should be obtained from elsewhere. 任意のソースからプログラムによって値が指定されていない場合Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) 、アプリケーション上で視覚的に表示される既定のカーソルは矢印になります。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. ただし、一時カーソルの変更は、渡されたCursorときに要素の値に設定されません。However, the transient cursor changes are not set to the Cursor values of the elements when they are passed over. Cursorプロパティは、実際に設定されている場合には null 以外の値のみを報告します。たとえば、コードやスタイルを使用します。The Cursor property will only report non null values in cases where it was actually set, for instance through code or a style. アプリケーションにWPFWPFマウスを移動するたびに、イベントQueryCursorが発生します。Each movement of the mouse over a WPFWPF application raises a QueryCursor event. イベントのバブルと、ルートにあるすべての要素には、イベントを処理し、このイベントの引数を使用してカーソルの値を設定する機会があります。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. これは、ほとんどの場合に視覚的に見えるカーソルを生成するメカニズムです。This is the mechanism that produces the visually apparent cursor in most cases. ハンドラーがカーソルの結果を返す場合は、が設定されていない限りForceCursor 、イベントが処理され、引数の値が変更さCursorれたという事実が、プロパティの値よりも優先されます。 QueryCursorIf 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.

カスタムカーソルを作成しない場合は、通常、 Cursorsこのプロパティをクラスの静的なプロパティ値に設定します。If not are not creating a custom cursor, you typically set this property to a static property value of the Cursors class. コードCursorでを設定するには、次のいずれかが必要です。Setting Cursor in code requires one of the following:

  • インスタンスCursorCursor取得するには、コンストラクターを呼び出します。Call the Cursor constructor to get a Cursor instance. 両方のCursorコンストラクターのシグネチャは、カスタムカーソルのCursorオブジェクトを作成することを想定して、ストリームまたはファイルを使用します。Both signatures of the Cursor constructor use streams or files, in anticipation that you are creating the Cursor object for a custom cursor.

  • ConvertFrom CursorType CursorTypeクラスとそのメソッドを使用して、によってカーソルを指定するか、に評価できる文字列を指定してCursor、戻り値をにキャストします。 CursorConverterUse 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.

部分信頼Cursorでは、をカスタム値に設定することはできません。Setting the Cursor to a custom value is not enabled in partial trust. カスタムカーソルの詳細については、「入力の概要」を参照してください。For more information on custom cursors, see Input Overview.

依存プロパティ情報Dependency Property Information

識別子フィールドIdentifier field CursorProperty
メタデータプロパティがに設定されるtrueMetadata properties set to true NoneNone

適用対象

こちらもご覧ください