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