Avalonia 中没有名为 Cursor 的控件属性(不像 WPF 的
FrameworkElement.Cursor),但可以通过 Style 或直接在 XAML 元素上设置
Cursor属性来控制鼠标指针样式——它属于 Avalonia 的
Visual基类,所有可渲染控件都继承该属性。
直接在控件上设置 Cursor
最简单的方式是在 XAML 中为按钮、文本框等控件显式指定:
支持的值与 CSS 类似,例如:
•
Default(默认箭头)
•
Hand(手型,常用于可点击区域)
•
Text(I 形光标,适合输入场景)
•
Wait(沙漏/旋转图标)
•
Arrow、
Crosshair、
None等
用 Style 统一设置光标样式
适合批量控制或配合状态切换(如悬停时变手型):
这样所有 Button 在悬停时自动显示手型光标。也可组合使用,比如:
•
Button:pressed→ 设为
Wait表示正在响应
•
TextBox:focus→ 设为
Text
自定义图片光标(.cur 或 .png)
Avalonia 支持通过 URI 引用本地或嵌入资源的光标文件:
其中
HandCursor是一个
Cursor类型静态资源,需预先加载:
• 用
new Cursor(new Uri("avares://YourApp/Assets/hand.cur"))• 或在
App.axaml的
Application.Resources中注册为资源
注意:.cur 文件兼容性最好;PNG 需带透明通道且推荐尺寸为 32×32 或 64×64
动态切换光标(代码中控制)
运行时可通过绑定或代码修改:
myButton.Cursor = new Cursor(new Uri("avares://MyApp/Assets/wait.cur"));
或绑定到 ViewModel 属性(需属性类型为
Cursor,并确保 INotifyPropertyChanged 触发):
