TimePicker
.NET Multi-platform App UI (.NET MAUI) TimePicker 调用平台的时间选取器控件,并允许选择时间。
TimePicker 定义以下属性:
TimeSpan
类型的Time
,所选时间,默认为 0 的TimeSpan
。TimeSpan
类型指示自午夜以来的持续时间。string
类型的Format
,标准或自定义 .NET 格式设置字符串,默认为“t”,即短时间模式。- Color 类型的
TextColor
,用于显示所选时间的颜色。 FontAttributes
类型的FontAttributes
,默认为FontAtributes.None
。string
类型的FontFamily
,默认为null
。double
类型的FontSize
,默认为 -1.0。CharacterSpacing
,属于double
类型,是 TimePicker 文本字符之间的间距。
所有这些属性都由 BindableProperty 对象提供支持,这意味着可以对它们进行样式设置,并且可以将它们用作数据绑定的目标。 Time
属性的默认绑定模式为 BindingMode.TwoWay
,这意味着它可以是使用模型-视图-视图模型 (MVVM) 模式的应用中数据绑定的目标。
注意
TimePicker 不包括用于指示新选定 Time
值的事件。 如果需要收到此通知,可以为 PropertyChanged
事件添加事件处理程序。
此外,TimePicker 定义了 TimeSelected 事件,在所选时间发生更改时会引发该事件。 TimeSelected
事件附带的 TimeChangedEventArgs 对象具有 NewTime
和 OldTime
属性,分别指定新时间和旧时间。
创建 TimePicker
在 XAML 中指定 Time
属性时,会将值将转化为 TimeSpan
,并进行验证以确保毫秒数大于或等于 0,并且小时数小于 24。 时间部分应用冒号分隔:
<TimePicker Time="4:15:26" />
如果将 TimePicker 的 BindingContext
属性设置为包含比方说名为 SelectedTime
的 TimeSpan
类型属性的视图模型实例,则可以按如下所示实例化 TimePicker:
<TimePicker Time="{Binding SelectedTime}" />
在此示例中,将 Time
属性初始化为视图模型中的 SelectedTime
属性。 由于 Time
属性的绑定模式为 TwoWay
,因此用户选择的任何新时间都会自动传播到视图模型。
在代码中,可以将 Time
属性初始化为 TimeSpan
类型的值:
TimePicker timePicker = new TimePicker
{
Time = new TimeSpan(4, 15, 26) // Time set to "04:15:26"
};
有关设置字体属性的信息,请参阅字体。
TimePicker 和布局
可以使用不受约束的水平布局选项,例如 Center
、Start
或 End
和 TimePicker:
<TimePicker ···
HorizontalOptions="Center" />
但是不建议这样做。 根据 Format
属性的设置,所选时间可能需要不同的显示宽度。 例如,“T”格式字符串会导致 TimePicker 视图以长格式显示时间,而 "4:15:26 AM" 需要比 "4:15 AM" 的短时间格式 (“t”) 更大的显示宽度。 根据平台的不同,这种差异可能会导致 TimePicker 视图更改布局宽度,或导致显示被截断。
提示
在将 TimePicker 放入 Grid 单元格时,最好将 Fill
的默认 HorizontalOptions
设置与 TimePicker 一同使用,并不使用 Auto
的宽度。
平台差异
本部分介绍 TimePicker 控件特定于平台的差异。
在 Android 上,控件会遵循并显示 Format
属性。 但是,当按控件显示选取器控件时,只能更改一天中的小时、分钟和时间。