この記事の英語版を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語
このドキュメントはアーカイブされており、メンテナンスされていません。

FrameworkElement.Cursor プロパティ

マウス ポインターがこの要素の上にあるときに表示されるカーソルを取得または設定します。

名前空間:  System.Windows
アセンブリ:  PresentationFramework (PresentationFramework.dll 内)
XAML の XMLNS: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public Cursor Cursor { get; set; }
<object Cursor="Cursor" .../>

プロパティ値

型: System.Windows.Input.Cursor
表示するカーソル。 この依存関係プロパティによって、既定値が null として定義されます。 ただし、実行時の実際的な既定値は、さまざまな側面に起因します。

識別子フィールド

CursorProperty

true に設定されたメタデータのプロパティ

None

このプロパティを 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 コンストラクターの 2 つの署名では、ストリームかファイルを使用します。これは、カスタム カーソルの Cursor オブジェクトが作成されることを想定しているためです。

  • CursorConverter クラスとその ConvertFrom メソッドを使用して、カーソルを CursorType で指定するか、CursorType に評価される文字列で指定して、戻り値を Cursor にキャストします。

部分信頼では Cursor をカスタム値に設定することはできません。 カスタム カーソルの詳細については、「入力の概要」を参照してください。

カーソル グラフィックを意図的に設定する方法を次の例に示します。


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;
        }
    }
}


.NET Framework

サポート対象: 4、3.5、3.0

.NET Framework Client Profile

サポート対象: 4、3.5 SP1

Windows 7, Windows Vista SP1 以降, Windows XP SP3, Windows Server 2008 (Server Core はサポート対象外), Windows Server 2008 R2 (SP1 以降で Server Core をサポート), Windows Server 2003 SP2

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。 サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
表示: