TimePicker

.NET Multi-platform App UI (.NET MAUI) TimePicker 调用平台的时间选取器控件,并允许选择时间。

TimePicker 定义以下属性:

  • TimeSpan 类型的 Time,所选时间,默认为 0 的 TimeSpanTimeSpan 类型指示自午夜以来的持续时间。
  • 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 对象具有 NewTimeOldTime 属性,分别指定新时间和旧时间。

创建 TimePicker

在 XAML 中指定 Time 属性时,会将值将转化为 TimeSpan,并进行验证以确保毫秒数大于或等于 0,并且小时数小于 24。 时间部分应用冒号分隔:

<TimePicker Time="4:15:26" />

如果将 TimePickerBindingContext 属性设置为包含比方说名为 SelectedTimeTimeSpan 类型属性的视图模型实例,则可以按如下所示实例化 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 和布局

可以使用不受约束的水平布局选项,例如 CenterStartEndTimePicker:

<TimePicker ···
            HorizontalOptions="Center" />

但是不建议这样做。 根据 Format 属性的设置,所选时间可能需要不同的显示宽度。 例如,“T”格式字符串会导致 TimePicker 视图以长格式显示时间,而 "4:15:26 AM" 需要比 "4:15 AM" 的短时间格式 (“t”) 更大的显示宽度。 根据平台的不同,这种差异可能会导致 TimePicker 视图更改布局宽度,或导致显示被截断。

提示

在将 TimePicker 放入 Grid 单元格时,最好将 Fill 的默认 HorizontalOptions 设置与 TimePicker 一同使用,并不使用 Auto 的宽度。

平台差异

本部分介绍 TimePicker 控件特定于平台的差异。

在 Android 上,控件会遵循并显示 Format 属性。 但是,当按控件显示选取器控件时,只能更改一天中的小时、分钟和时间。