本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

FrameworkElement.Cursor 属性

 

获取或设置在鼠标指针位于此元素上时显示的光标。

命名空间:   System.Windows
程序集:  PresentationFramework(位于 PresentationFramework.dll)

public Cursor Cursor { get; set; }

属性值

Type: System.Windows.Input.Cursor

要显示的光标。 按此依赖属性,默认值定义为 null 但是,运行时的实际默认值将受到多种因素的影响。

将此属性设置 XAML, 、 XAML 处理器将依赖有关类型转换 Cursor 类来计算该字符串。 所提供的字符串的计算结果应为 CursorType 值。 有关详细信息,请参阅Cursor

此属性所设立的游标将鼠标指针位于此元素时,将不会显示是还是还依赖于的值 ForceCursor 属性。 此外,与事件相关的注意事项,如活动拖动、 鼠标捕获、 文本编辑模式中控件和等等,还将影响游标,并且其优先级高于此属性中指定的值。

若要还原的此属性设置为最终的默认行为,请将其设置为 null 再次。

null 默认值实际上意味着实际光标值确定此处延迟,并且应从其他地方获取。 如果提供无需以编程方式从任何源的值,默认光标,则光标 Windows Presentation Foundation (WPF) 应用程序将是一个箭头。 但是,暂时光标发生变化,未设置为 Cursor 时通过传递的元素的值。 Cursor 属性将只报告非 null 值在其中实际设置,例如通过代码或一种样式的情况下。 每次移动的鼠标悬停 WPF 应用程序将引发 QueryCursor 事件。 该事件冒泡,并且该路线沿途的任何元素都有机会对事件进行处理并设置游标通过此事件的参数的值。 这是显而易见的光标,在大多数情况下将产生的机制。 如果 QueryCursor 处理程序返回游标结果,则表明事件进行处理,并且参数中有一个更改的值优先于的值 Cursor 属性在任何级别,除非 ForceCursor 设置。

如果不创建自定义光标,已将此属性通常设置的静态属性值为 Cursors 类。 设置 Cursor 在代码中需要以下项之一︰

设置 Cursor 在部分信任环境中未启用为自定义值。 自定义光标的详细信息,请参阅 输入概述

标识符字段,

CursorProperty

元数据属性设置为 true

下面的示例演示如何特意设置光标图形。

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
自 3.0 起可用
Silverlight
自 2.0 起可用
Windows Phone Silverlight
自 7.0 起可用
返回页首
显示: