下面是对 Avalonia 提供的所有控件的详细介绍,包括每个控件的用途和常见用法:
布局类控件
Window
- 用途:应用程序的窗口容器,包含界面的根元素,通常用于显示顶层的用户界面。
- 属性:
Width
、Height
、Title
、Content
。
Panel
- 用途:基础布局容器,子类有不同的布局方式。
常见子类:
- StackPanel:垂直或水平堆叠子控件。
- Grid:类似 HTML 中的表格布局,可通过行列定义元素位置。
- Canvas:提供绝对定位布局,每个子元素可以自由设置位置。
- DockPanel:允许将子元素停靠到容器的边缘(上、下、左、右)。
Border
- 用途:用于给控件添加边框、背景或圆角等效果。
- 属性:
Background
、BorderBrush
、BorderThickness
、CornerRadius
。
ScrollViewer
- 用途:提供滚动功能的容器,包含的内容如果超出控件尺寸会显示滚动条。
- 属性:
HorizontalScrollBarVisibility
、VerticalScrollBarVisibility
。
输入类控件
Button
- 用途:用于触发操作的按钮,支持点击事件。
- 属性:
Content
、Command
。
TextBox
- 用途:用于文本输入的控件,支持单行和多行文本输入。
- 属性:
Text
、Watermark
(占位符)。
PasswordBox
- 用途:用于输入密码的控件,输入内容不可见以保护隐私。
- 属性:
Password
。
CheckBox
- 用途:复选框,用于表示二元状态(选中/未选中)。
- 属性:
IsChecked
。
RadioButton
- 用途:单选按钮,用于在一组互斥的选项中选择一个。
- 属性:
IsChecked
、GroupName
。
ToggleSwitch
- 用途:开关控件,表示开启/关闭状态,类似于移动端的切换按钮。
- 属性:
IsChecked
。
Slider
- 用途:滑块控件,用于选择一个范围内的数值。
- 属性:
Minimum
、Maximum
、Value
。
NumericUpDown
- 用途:用于输入和调整数字的控件,带有增减按钮。
- 属性:
Minimum
、Maximum
、Value
、Increment
。
选择类控件
ComboBox
- 用途:下拉选择框,用户可以从预定义的列表中选择一个值。
- 属性:
Items
、SelectedItem
、IsEditable
。
ListBox
- 用途:列表框,显示一组可选择的项,支持单选和多选。
- 属性:
Items
、SelectedItem
、SelectionMode
。
TreeView
- 用途:树形控件,用于显示层次化数据,支持展开和折叠节点。
- 属性:
Items
、SelectedItem
。
TabControl & TabItem
- 用途:标签页控件,提供多个视图的切换。
- 属性:
Items
、SelectedItem
。
Expander
- 用途:可折叠的容器,可以展开或折叠以显示或隐藏内容。
- 属性:
IsExpanded
、Header
。
DatePicker
- 用途:日期选择控件,提供一个用户友好的方式选择日期。
- 属性:
SelectedDate
。
TimePicker
- 用途:时间选择控件,允许选择时间(时、分、秒)。
- 属性:
SelectedTime
。
显示类控件
TextBlock
- 用途:用于显示不可编辑的文本内容。
- 属性:
Text
、FontSize
、TextAlignment
。
Label
- 用途:文本标签,通常用于描述其他控件的用途。
- 属性:
Content
。
Image
- 用途:用于显示图像内容,支持多种格式(如 PNG、JPG)。
- 属性:
Source
、Stretch
(图像拉伸方式)。
ProgressBar
- 用途:显示任务进度,可以是确定(具体进度)或不确定(循环动画)。
- 属性:
Minimum
、Maximum
、Value
、IsIndeterminate
。
ProgressRing
- 用途:环形进度指示器,通常用于表示应用正在进行某个任务。
- 属性:
IsActive
。
Calendar
- 用途:日历控件,显示一个月的日期,可以选择日期范围。
- 属性:
SelectedDate
、DisplayMode
。
Flyout
- 用途:浮动窗口,可以用来显示弹出菜单、工具提示等内容。
- 属性:
Placement
、Content
。
菜单类控件
Menu
- 用途:菜单栏控件,可以在应用窗口的顶部显示一个菜单栏。
- 属性:
Items
(通常包含多个MenuItem
)。
MenuItem
- 用途:菜单项,显示在菜单栏中,可以包含子菜单项或触发命令。
- 属性:
Header
、Command
、Items
(用于嵌套子菜单)。
ContextMenu
- 用途:上下文菜单,通常在右键点击时显示。
- 属性:
Items
、PlacementTarget
。
对话框类控件
DialogHost
- 用途:对话框容器,可以显示自定义内容作为弹出对话框。
- 属性:
IsOpen
、Content
。
MessageBox
- 用途:用于显示消息提示框,通常用于提醒或简单确认操作。
动画类控件
Animation
- 用途:支持对控件的动画处理,包括移动、缩放、旋转等效果。
- 属性:
From
、To
、Duration
。
这些控件可以组合并使用,以构建丰富的跨平台用户界面。此外,Avalonia 提供了丰富的数据绑定和样式系统,使得这些控件可以轻松与数据源绑定,并应用一致的外观设计。