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

FrameworkElement.Cursor 属性

获取或设置鼠标指针悬停在 FrameworkElement 上时所显示的光标图像。

命名空间:  System.Windows
程序集:  System.Windows(在 System.Windows.dll 中)

public Cursor Cursor { get; set; }
<frameworkElement Cursor="cursorsValue"/>

XAML 值

cursorsValue

命名 Cursors 常量值的字符串,例如 ArrowIBeam

属性值

类型:System.Windows.Input.Cursor
要显示的光标图像。 代码访问的默认值定义为 null 但是,运行时光标图像在 UI 中的外观将受到多种因素的影响。

Dependency property identifier field: CursorProperty

在 XAML 中设置此属性时,XAML 处理器将依赖于 Cursor 类的类型转换来计算属性字符串值。 提供的字符串的计算结果应为一字符串,该字符串为 Cursors 常量。 有关更多信息,请参见 Cursor

若要从代码恢复设置此属性的效果并改用运行时 UI 默认值,请将 Cursor 设置为 null

null 默认值实际上意味着 UI 中的光标/指针图像的确定将被延迟,作为特定的基于每个对象的属性集,并且应该从其他地方获取。 如果在没有来自任何源的编程值的情况下呈现光标,则基于 Silverlight 的应用程序上显示的默认光标将是一个箭头。 但是,当忽略瞬态光标变化时,不会将这些变化设置为对象的 Cursor 值。 如果实际设置了 Cursor 属性(例如,通过代码),该属性将只报告非空值。

特定控件可能还影响 Cursor 值,作为其构成的一部分(可能通过某一样式或是样式中可视状态),并且通过其类实现来影响。 包含 TextBox 的任何控件或 TextBox 本身就是这样的例子。

当您在布局容器(如面板)上设置 Cursor 值时,游标值将“继承”,以便对于所含子元素(没有指定光标应成为何种目标)成为悬停行为。 但是,如果任何特定的元素确实请求特定光标(就像 TextBox 通常所为),则将使用元素对应的特定光标,而无论容器上 Cursor 值是什么。

注意说明:

Silverlight 根据 WPF 光标 API 对自己的光标 API 建模。 但是,在 Silverlight 5 Beta 中无法扩展光标(Silverlight Cursor 是密封的)。 这就是您需要在代码中使用 Cursor 属性值的 Cursor 中间类型而不是作为 Cursors 静态属性值直接使用的体系结构原因。

版本说明

在 Silverlight 3 中,Cursor 是一个依赖项属性,尽管标识符字段不是公共的。 您仍可以在 XAML 中设置它,并且可以在 XAML 中设置其样式。 但是,您不能对其使用属性系统 API(例如 SetValue)。

下面的示例实现一个实用工具方法,它对于"Grab"操作将目标 FrameworkElement 上的游标设置为适当的可视化游标 (Hand)。 此外,此方法将任何先前设置的"Grab"游标重置回为 null 默认值,以供在完成"Grab"操作后使用。

private static void ChangeGrabState(bool canGrab, FrameworkElement target)
{
    if (canGrab)
    {
        target.Cursor = Cursors.Hand;
    }
    else
    {
        target.Cursor = null;
        //deliberate null set causes the target to resume a default cursor handling
        //based on context, the specific target's behavior, etc.
    }
}

Silverlight

受以下版本支持:5、4、3

Silverlight for Windows Phone

受以下版本支持:Windows Phone OS 7.1、Windows Phone OS 7.0

有关 Silverlight 支持的操作系统和浏览器的列表,请参见 支持的操作系统和浏览器

社区附加资源

添加
显示:
© 2016 Microsoft