TimePicker.SelectedTime 属性

定义

获取或设置时间选取器中当前选择的时间。

public:
 property IReference<TimeSpan> ^ SelectedTime { IReference<TimeSpan> ^ get(); void set(IReference<TimeSpan> ^ value); };
IReference<TimeSpan> SelectedTime();

void SelectedTime(IReference<TimeSpan> value);
public System.Nullable<System.TimeSpan> SelectedTime { get; set; }
var iReference = timePicker.selectedTime;
timePicker.selectedTime = iReference;
Public Property SelectedTime As Nullable(Of TimeSpan)

属性值

时间选取器中当前选择的时间。

Windows 要求

设备系列
Windows 10, version 1809 (在 10.0.17763.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v7.0 中引入)

示例

在这里,SelectedTime 属性用于将所选时间与当前时间进行比较。

请注意,由于 SelectedTime 属性可为 null,因此必须将其显式强制转换为 DateTime,如下所示:DateTime myTime = (DateTime)(DateTime.Today + checkTimePicker.SelectedTime);

时间选取器、按钮和文本标签。

<StackPanel>
    <TimePicker x:Name="checkTimePicker"/>
    <Button Content="Check time" Click="{x:Bind CheckTime}"/>
    <TextBlock x:Name="resultText"/>
</StackPanel>
private void CheckTime()
{
    // Using the SelectedTime property (nullable requires cast to DateTime).
    DateTime myTime = (DateTime)(DateTime.Today + checkTimePicker.SelectedTime);
    if (DateTime.Now >= myTime)
    {
        resultText.Text = "Your selected time has already past.";
    }
    else
    {
        string hrs = (myTime - DateTime.Now).Hours.ToString();
        string mins = (myTime - DateTime.Now).Minutes.ToString();
        resultText.Text = string.Format("Your selected time is {0} hours, {1} minutes from now.", hrs, mins);
    }
}

注解

时间选取器控件同时具有 Time/TimeChangedSelectedTime/SelectedTimeChanged API。 这两者的区别是,Time 不可为 null,而 SelectedTime 可以为 null。

SelectedTime 的值用于填充时间选取器,它默认为 null。 如果 SelectedTimenull,则 Time 属性设置为 TimeSpan 0;否则,Time 值与 SelectedTime 值同步。 当 SelectedTimenull时,不设置选取器,它显示字段名称而不是时间。

时间不会像时钟) 那样以实时 (递增,除非在应用运行时提供对某个值的代码绑定,该值会跟踪当前时间。

可在 XAML 中将时间值设置为特性。 如果已在 XAML 中声明 TimePicker 对象,并且未对时间值使用绑定,则这可能是最简单的方法。 使用 HhMm 格式的字符串,其中 Hh 为小时,介于 0 和 23 之间, Mm 为分钟,并且可以介于 0 和 59 之间。 “0”可以是 HhMm 中的初始字符,并且通常包含 “0” 以明确任何值 0 到 9。 例如,“9:5”和“09:05”均有效且表示同一时间,但“09:05”在标记中更易于阅读。

若要在代码中设置时间,可以使用不同的方法,具体取决于编程语言。 该值表示为适用于 C# 和 Visual Basic 的 System.TimeSpan ,或适用于 Visual C++ 组件扩展的 Windows.Foundation.TimeSpan (C++/CX) 。 生成适合SelectedTimeSystem.TimeSpan 值的最简单方法是使用 TimeSpan.Parse静态方法。 使用 hhMm (小时:分钟) 格式的字符串。

无论是在代码中设置还是 XAML 中设置, TimePicker 类都具有强制逻辑,用于在尝试设置时保留的值。 将忽略任何天数值。 忽略秒值 (例如,超过 30 的秒数不会向上舍入到下一分钟) 。 忽略秒的小数部分。 值不环绕 (例如,值“24:00”无效。) 中的 TimeSpan 最小值为时间 0 (00:00,午夜) 最大值为 23:59。 范围外的值会引发异常,但根据具体细节,异常可能源自 构造, TimeSpan 而不是源自 的 SelectedTime验证和强制。

若要在 Visual C++ 组件扩展 (C++/CX) 中设置 SelectedTime 值,请设置 DurationTimeSpan 结构的 字段。 Duration 以 100 纳秒为单位指定时间;编写自己的逻辑,用于转换小时:分钟表示形式。

在代码或 XAML 中为 SelectedTime 设置的任何值都指定控件中显示的初始值。 在运行时的应用中,该值通常由用户在时间选取器浮出控件中设置。 设置用户选择的时间,当用户进行更改并按下时间选取器浮出控件中的检查标记按钮以提交其选择时,将发生 SelectedTimeChanged 事件。

适用于