# TimePicker 使用文档 本文档介绍 AtomUI TimePicker 和 RangeTimePicker 控件的各种使用方式,示例代码摘自 Gallery 演示程序。 > 📖 Gallery 源码位置:`controlgallery/AtomUIGallery/ShowCases/Views/DataEntry/TimePickerShowCase.axaml` --- ## 前置准备 在 AXAML 中使用 TimePicker,需要引入以下命名空间: ```xml xmlns:atom="https://atomui.net" xmlns:antdicons="https://atomui.net/icons/antdesign" ``` 在 C# 代码中引入: ```csharp using AtomUI.Desktop.Controls; // TimePicker, RangeTimePicker 控件 using AtomUI.Controls; // SizeType 等共享类型 ``` --- ## 1. 基本用法 最简单的 TimePicker 用法,点击输入框弹出时间选择面板: ```xml ``` 默认配置下: - 使用 24 小时制 - 显示"此刻"快捷按钮 - 不需要点击确认(双击选项或点击"此刻"直接应用) --- ## 2. 确认模式 启用确认模式后,用户需要点击"确定"按钮才会应用选择的时间: ```xml ``` --- ## 3. 时钟格式(12/24 小时制) 通过 `ClockIdentifier` 属性切换时钟格式: ```xml ``` 12 小时制下,弹出面板会增加 AM/PM(上午/下午)选择列。 --- ## 4. 三种尺寸 通过 `SizeType` 属性设置尺寸,支持 `Large`、`Middle`(默认)、`Small` 三种: ```xml ``` --- ## 5. 禁用状态 通过 `IsEnabled="False"` 禁用时间选择器: ```xml ``` --- ## 6. 步进选择 通过 `MinuteIncrement` 和 `SecondIncrement` 控制分钟和秒钟列的候选项粒度: ```xml ``` 设置 `MinuteIncrement="15"` 后,分钟列仅显示 `00`、`15`、`30`、`45` 四个选项。 --- ## 7. 样式变体(Variants) TimePicker 支持三种样式变体:Outline(默认)、Filled、Borderless。 ```xml ``` --- ## 8. 验证状态(Status) 通过 `Status` 属性设置验证状态反馈: ```xml ``` --- ## 9. 时间范围选择器(RangeTimePicker) 使用 `RangeTimePicker` 选择时间范围,提供起始和结束两个输入框: ```xml ``` **交互流程**: 1. 点击起始输入框 → 弹出面板 → 选择起始时间 2. 如果结束时间为空 → 自动切换到结束输入框 3. 两个时间都选定后 → 自动关闭面板 RangeTimePicker 也支持确认模式: ```xml ``` --- ## 10. 默认值 通过 `DefaultTime` 设置控件加载时的默认时间: ```xml ``` --- ## 11. MVVM 数据绑定 TimePicker 的 `SelectedTime` 属性支持双向绑定,可在 MVVM 模式下使用: ```xml ``` ```csharp // ViewModel(使用 ReactiveUI) public class MyViewModel : ReactiveObject { [Reactive] public TimeSpan? SelectedTime { get; set; } } ``` RangeTimePicker 的 `RangeStartSelectedTime` 和 `RangeEndSelectedTime` 同样支持双向绑定: ```xml ``` --- ## 12. Code-Behind 操作 在代码中操作 TimePicker: ```csharp // 获取选中时间 TimeSpan? selectedTime = myTimePicker.SelectedTime; // 设置时间 myTimePicker.SelectedTime = new TimeSpan(14, 30, 0); // 清除值(不考虑默认值) myTimePicker.Clear(); // 重置为默认值 myTimePicker.Reset(); // 关闭弹出面板 myTimePicker.ClosePickerFlyout(); ``` --- ## 常见组合模式 ### 表单中的时间选择 ```xml ``` ### 时间范围筛选 ```xml 工作时段: ``` ### 12 小时制 + 确认模式 ```xml ``` ### 步进选择 + 紧凑尺寸 ```xml ```