TimePicker.SelectedTime 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置时间选取器中当前选择的时间。
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/TimeChanged 和 SelectedTime
/SelectedTimeChanged API。 这两者的区别是,Time
不可为 null,而 SelectedTime
可以为 null。
SelectedTime
的值用于填充时间选取器,它默认为 null
。 如果 SelectedTime
是 null
,则 Time
属性设置为 TimeSpan 0;否则,Time
值与 SelectedTime
值同步。 当 SelectedTime
是 null
时,不设置选取器,它显示字段名称而不是时间。
时间不会像时钟) 那样以实时 (递增,除非在应用运行时提供对某个值的代码绑定,该值会跟踪当前时间。
可在 XAML 中将时间值设置为特性。 如果已在 XAML 中声明 TimePicker 对象,并且未对时间值使用绑定,则这可能是最简单的方法。 使用 Hh:Mm 格式的字符串,其中 Hh 为小时,介于 0 和 23 之间, Mm 为分钟,并且可以介于 0 和 59 之间。 “0”可以是 Hh 或 Mm 中的初始字符,并且通常包含 “0” 以明确任何值 0 到 9。 例如,“9:5”和“09:05”均有效且表示同一时间,但“09:05”在标记中更易于阅读。
若要在代码中设置时间,可以使用不同的方法,具体取决于编程语言。 该值表示为适用于 C# 和 Visual Basic 的 System.TimeSpan ,或适用于 Visual C++ 组件扩展的 Windows.Foundation.TimeSpan (C++/CX) 。 生成适合SelectedTime
的 System.TimeSpan 值的最简单方法是使用 TimeSpan.Parse静态方法。 使用 hh:Mm (小时:分钟) 格式的字符串。
无论是在代码中设置还是 XAML 中设置, TimePicker 类都具有强制逻辑,用于在尝试设置时保留的值。 将忽略任何天数值。 忽略秒值 (例如,超过 30 的秒数不会向上舍入到下一分钟) 。 忽略秒的小数部分。 值不环绕 (例如,值“24:00”无效。) 中的 TimeSpan
最小值为时间 0 (00:00,午夜) 最大值为 23:59。 范围外的值会引发异常,但根据具体细节,异常可能源自 构造, TimeSpan
而不是源自 的 SelectedTime
验证和强制。
若要在 Visual C++ 组件扩展 (C++/CX) 中设置 SelectedTime
值,请设置 Duration
TimeSpan 结构的 字段。
Duration
以 100 纳秒为单位指定时间;编写自己的逻辑,用于转换小时:分钟表示形式。
在代码或 XAML 中为 SelectedTime
设置的任何值都指定控件中显示的初始值。 在运行时的应用中,该值通常由用户在时间选取器浮出控件中设置。 设置用户选择的时间,当用户进行更改并按下时间选取器浮出控件中的检查标记按钮以提交其选择时,将发生 SelectedTimeChanged 事件。