C# UWP中有小时、分钟和秒的时间控制吗?

C# UWP中有小时、分钟和秒的时间控制吗?,c#,xaml,uwp,timepicker,C#,Xaml,Uwp,Timepicker,我想有一个时间选择器控制,我可以设置小时,分钟和秒。默认的时间选择器控件没有包含秒。在计时器选择器控件中设置秒值的最简单方法是什么?内置的计时器选择器确实不支持秒输入。您可以将TimePicker子类化并手动扩展它以支持此场景,但这可能会非常复杂,因为您不仅需要修改控件本身的模板,还需要编辑timepickerlyoutpresenter以支持秒输入。这甚至可能根本不可能,而且可能是一种过度的杀伤力 我认为更好、更简单的解决方案是使用Windows社区工具包的一部分。这允许您定义文本框的自定义格

我想有一个时间选择器控制,我可以设置小时,分钟和秒。默认的时间选择器控件没有包含秒。在计时器选择器控件中设置秒值的最简单方法是什么?

内置的
计时器选择器确实不支持秒输入。您可以将
TimePicker
子类化并手动扩展它以支持此场景,但这可能会非常复杂,因为您不仅需要修改控件本身的模板,还需要编辑
timepickerlyoutpresenter
以支持秒输入。这甚至可能根本不可能,而且可能是一种过度的杀伤力

我认为更好、更简单的解决方案是使用Windows社区工具包的一部分。这允许您定义
文本框
的自定义格式,如下所示:

<TextBox extensions:TextBoxMask.CustomMask="5:[0-5]"
                     extensions:TextBoxMask.Mask="99:59:59" />

文本框将支持
hh:mm:ss
格式的输入。默认情况下,
Mask
支持字母的字符
a
、数字0-9的字符
9
、任何字符的字符
*
。您可以使用
CustomMask
定义自定义掩码字符,这就是我在这里所做的,以确保将数十分钟和秒限制为五十(00-59)


另一个解决方案是创建一个自定义控件,将普通的内置
时间选择器
文本框
结合在一起,只需几秒钟,但我认为
文本框掩码
是一个更好、更友好的解决方案。

谢谢Martin!我同意你的建议。但我可能需要尝试自定义控件创建方法。知道如何使用此掩码将文本框(以UWP编程方式)重置为初始值吗?:?我几乎什么都试过了。空只删除一个字符,我可以循环多个字符串。空,但肯定有更好的方法。在UWP中,文本框上没有.Clear()。手动工作很好,但当已经有值时,我不能再通过编程设置一个值,只有在重置它时才能再次工作,非常奇怪。嘿@Martin Zikmund。你在Uno平台上试过类似的东西吗?你好,克里斯蒂安!我想当WinUI3开源时会增加支持,因为这样可以很容易地移植TimePicker控件