エクスポート (0) 印刷
すべて展開

FrameworkElement.Cursor プロパティ

更新 : 2007 年 11 月

マウス ポインタがこの要素の上にあるときに表示されるカーソルを取得または設定します。これは、依存関係プロパティです。

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

public Cursor Cursor { get; set; }
/** @property */
public Cursor get_Cursor()
/** @property */
public  void set_Cursor(Cursor value)

public function get Cursor () : Cursor
public function set Cursor (value : Cursor)
<object Cursor="Cursor" .../>

プロパティ値

型 : System.Windows.Input.Cursor

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

識別子フィールド

CursorProperty

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

なし

このプロパティを 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;
        }
    }
}


Windows Vista

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

.NET Framework

サポート対象 : 3.5、3.0

コミュニティの追加

追加
表示:
© 2014 Microsoft