控件和布局
控件
Avalonia 提供了许多核心控件。以下是一些最常见的:
按钮:
Button
,RepeatButton
数据展示:
ItemsControl
,ItemsRepeater
,ListBox
,TreeView
输入:
CheckBox
,ComboBox
,RadioButton
,Slider
,TextBox
布局:
Border
,Canvas
,DockPanel
,Expander
,Grid
,GridSplitter
,Panel
,Separator
,ScrollBar
,ScrollViewer
,StackPanel
,Viewbox
,WrapPanel
菜单:
ContextMenu
,Menu
,NativeMenu
导航:
TabControl
,TabStrip
用户信息:
ProgressBar
,TextBlock
,ToolTip
输入和命令
控件经常需要检测和响应用户输入。Avalonia 的 输入系统 使用 直接路由事件 支持文本输入、焦点管理和鼠标定位功能。
应用程序通常有复杂的输入要求。Avalonia 提供了一个 命令系统,将用户输入的动作与响应这些动作的代码分开。
布局
创建用户界面时,可以按控件的位置和大小加以排列形成布局。任何布局的关键要求是适应窗体大小和显示设置的变化。Avalonia 提供了一流的、可扩展的布局系统,不通过强迫编写代码来适应这些情况下的布局。
相对定位是布局系统的基石,它能适应不断变化的窗口和显示条件。此外,确定布局依靠布局系统协调管理控件。协调是一个两步过程:第一步,子控件告诉其父控件子控件需要的位置和大小;第二步,父控件告诉子控件子控件允许有多少空间。
布局系统通过 Avalonia 基础类型暴露给子控件。对于 grids
、stacking
和 docking
等常见布局,Avalonia 拥有多种布局控件。
Panel
: 子控件用堆叠在一起的方式填充面板DockPanel
: 子控件与panel
边缘对齐StackPanel
: 子控件垂直或水平堆叠WrapPanel
: 当某一行上的控件数量超过空间允许的数量时,子控件将按从左到右的顺序排列并换行Grid
: 子控件按行和列定位Canvas
: 子控件提供自己的布局
你还可以通过从 Panel
类派生来创建自己的布局。
最后更新于