FrameworkElement.Cursor 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置在鼠标指针位于此元素上时显示的光标。
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
属性值
要显示的光标。 按此依赖属性,默认值定义为 null
。 但是,运行时的实际默认值将受到多种因素的影响。
示例
以下示例演示如何有意设置光标图形。
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
注解
在 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 两个签名都使用流或文件,以预期你正在为自定义游标创建 Cursor 对象。
CursorConverter使用 类及其ConvertFrom方法通过 CursorType指定游标,或可以计算结果为 的CursorType字符串,并将返回Cursor强制转换为 。
Cursor未在部分信任中启用将 设置为自定义值。 有关自定义游标的详细信息,请参阅 输入概述。
依赖项属性信息
标识符字段 | CursorProperty |
元数据属性设置为 true |
无 |