【发布时间】:2016-08-25 17:32:53
【问题描述】:
我一直在仔细梳理网络,以寻求有关这方面的任何指导、讨论或经验,我想我可以肯定地说没有什么可找到的。
我们正在为 UWP 开发一组控件,我们计划将其开源并免费提供。我们正在构建的控件之一是TimeSpanPicker 控件,它的外观和行为本质上类似于TimePicker 控件,但它不仅限于一天中的某个时间(即24 小时间隔),而是允许用户编辑任意TimeSpan。
根据我从 Windows 运行时 API 的可见元数据中拼凑出来的内容,使用内置的 TimePicker 控件作为参考,我意识到涉及以下类型的组件:
-
TimePicker 控件本身继承自
Control -
TimePickerFlyout 类继承自
PickerFlyoutBase -
TimePickerFlyoutPresenter 控件,继承自
Control
我意识到我需要模仿这种模式并为我们的选择器控件编写这三个组件,但我找不到关于这些部分如何组合在一起的信息,而且仅从 API 表面我认为不可能弄清楚出去。
具体来说,我想了解的主要内容是:
- 如何将
TimePickerFlyout合并到TimePicker类中?我在选取器控件的默认模板中的任何地方都看不到对浮出控件的引用。 -
TimePickerFlyoutPresenter控件起什么作用,它是如何合并到TimePickerFlyout类中的?TimePickerFlyout类没有模板 - 那么它如何实例化并与TimePickerFlyoutPresenter控件通信? - 模仿这种模式的基本步骤是什么?
-
PickerFlyoutBase上的ShouldShowConfirmationButtons和OnConfirmed虚拟方法的预期用途是什么?当我在具体实现中覆盖它们时,它们永远不会被调用。
非常感谢您的指导!
【问题讨论】:
-
有同样的需求,但是没找到,有没有找到解决办法,请分享到这里。
-
您找到解决方案了吗?现在我遇到了完全相同的问题,我正在尝试创建一个 TimeSpanPicker
-
@hutattedonmyarm 这个控件其实我是可以完成的,早就应该推送到GitHub了。感谢您提醒我,我将在即将到来的周末完成它并用答案更新此问题。
-
@äymm 我现在已经发布了完成的 TimeSpanPicker 控件。你可以在这里找到它:github.com/IDeliverable/UwpControls
标签: xaml win-universal-app flyout uwp-xaml