如何在UWP中编写自定义选择器控件?

丹尼尔·罗森伯格

我一直在仔细搜索网络,以获取有关此方面的任何指导,讨论或经验,我认为我可以肯定地说没有任何东西。

我们正在为UWP开发一套控件,我们计划将其开源并免费提供。我们正在构建的控件之一是TimeSpanPicker控件,其外观和行为本质上与TimePicker控件类似,但是它不仅限于一天中的某个时间(即24小时间隔),还允许用户编辑任意内容TimeSpan

通过使用内置TimePicker控件作为参考,从Windows Runtime API的可见元数据中整理出的内容,使我意识到涉及以下类型的组件:

  • 继承自TimePicker控件本身Control
  • 继承自TimePickerFlyoutPickerFlyoutBase
  • TimePickerFlyoutPresenter控制,其从继承Control

我意识到我需要模仿这种模式并为选择器控件编写这三个组件,但是我找不到有关这些部分如何组合在一起的信息,而且仅从API表面来看,我认为不可能弄清楚。

具体来说,我想了解的主要内容是:

  • 如何TimePickerFlyout纳入TimePicker班级?我在选择器控件的默认模板内的任何地方都看不到弹出按钮的引用。
  • 起什么作用的TimePickerFlyoutPresenter控制播放,以及它是如何并入TimePickerFlyout类?TimePickerFlyout类没有模板-那么它是如何实例化和与通信TimePickerFlyoutPresenter控制?
  • 模仿此模式的基本步骤是什么?
  • ShouldShowConfirmationButtonsOnConfirmed虚拟方法的预期用途是PickerFlyoutBase什么?当我在具体的实现中覆盖它们时,就永远不会调用它们。

如有任何指导,我将非常感谢!

丹尼尔·罗森伯格

因此,由于有几个人要求我跟进此事,因此在Jim Walker(MSFT)的帮助下,我最终终于能够弄清所有这些问题。这已经很长时间了,但是我现在决定重新审视这个问题,并最终完成那些我正在研究的工作TimeSpanPickerTimeSpanEditor控制。

https://github.com/IDeliverable/UwpControls

运行该TestHost项目以查看两个控件都在起作用。

该存储库还包含其他一些控件。包含TimeSpanPickerTimeSpanEditor控件的部分在这里:

https://github.com/IDeliverable/UwpControls/tree/master/src/IDeliverable.Controls.Uwp.TimeSpanPicker

对于希望对如何构建自定义选择器控件感兴趣的任何人,该代码都有望成为一个很好的示例,但是对于需要TimeSpan向其应用程序添加编辑功能的任何人,这些控件也应该是有用的我真的带着这些控件去了城镇,忙着细节和非显而易见的事情,例如可访问性,对多种输入模式(触摸,键盘,鼠标)的支持,系统主题合规性,全面的模板支持等。

这两个控件的文档目前仍在开发中。

我计划很快将这些控件打包为NuGet包,但现在,您必须将它们作为源代码使用。我还将检查是否有将它们合并到Window Community Toolkit中的兴趣

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何自定义选择器中的默认 <option>

来自分类Dev

如何在Sulu中自定义日期选择器?

来自分类Dev

如何在Windows Phone 8.1应用中添加自定义时间选择器?

来自分类Dev

如何在Android中自定义日期/时间选择器?

来自分类Dev

如何在Xcode故事板颜色选择器中添加自定义颜色?

来自分类Dev

如何在Wagtail中自定义图像选择器?

来自分类Dev

如何在Flutter中自定义数字选择器?

来自分类Dev

如何正确使用自定义控件的“数据源选择器编辑器”?

来自分类Dev

有没有办法在LESS中编写自定义选择器?

来自分类Dev

如何在设计时在delphi中的自定义控件中选择子控件

来自分类Dev

如何在Android中为颜色创建选择器(例如颜色状态列表,但用于自定义属性)?

来自分类Dev

如何在TextView上使用自定义选择器样式

来自分类Dev

如何在日期选择器上创建自定义cron作业?

来自分类Dev

如何自定义SOLine InventoryID选择器?

来自分类Dev

如何制作自定义javascript选择器?

来自分类Dev

在Scss中声明自定义选择器?

来自分类Dev

自定义类中的选择器

来自分类Dev

自定义修饰符禁用“控件”(“选择器”和“步进器”)。SwiftUI

来自分类Dev

如何使用纯Ruby(没有XPath / CSS)编写自定义的水豚选择器

来自分类Dev

自定义号码选择器

来自分类Dev

创建自定义图像选择器控件-应用裁剪

来自分类Dev

Angular 2自定义控件链接到带有控件值访问器,组合日期选择器的ngControl

来自分类Dev

Angular 2自定义控件链接到带有控件值访问器,组合日期选择器的ngControl

来自分类Dev

如何在LESS中编写〜选择器?

来自分类Dev

如何在LESS中编写〜选择器?

来自分类Dev

如何在scss中编写css类选择器

来自分类Dev

如何在BootstrapVue的Carousel组件中自定义控件和指示器?

来自分类Dev

如何在DateTimePicker控件中自定义日历?

来自分类Dev

如何在 Leaflet 中创建自定义设置控件

Related 相关文章

  1. 1

    如何自定义选择器中的默认 <option>

  2. 2

    如何在Sulu中自定义日期选择器?

  3. 3

    如何在Windows Phone 8.1应用中添加自定义时间选择器?

  4. 4

    如何在Android中自定义日期/时间选择器?

  5. 5

    如何在Xcode故事板颜色选择器中添加自定义颜色?

  6. 6

    如何在Wagtail中自定义图像选择器?

  7. 7

    如何在Flutter中自定义数字选择器?

  8. 8

    如何正确使用自定义控件的“数据源选择器编辑器”?

  9. 9

    有没有办法在LESS中编写自定义选择器?

  10. 10

    如何在设计时在delphi中的自定义控件中选择子控件

  11. 11

    如何在Android中为颜色创建选择器(例如颜色状态列表,但用于自定义属性)?

  12. 12

    如何在TextView上使用自定义选择器样式

  13. 13

    如何在日期选择器上创建自定义cron作业?

  14. 14

    如何自定义SOLine InventoryID选择器?

  15. 15

    如何制作自定义javascript选择器?

  16. 16

    在Scss中声明自定义选择器?

  17. 17

    自定义类中的选择器

  18. 18

    自定义修饰符禁用“控件”(“选择器”和“步进器”)。SwiftUI

  19. 19

    如何使用纯Ruby(没有XPath / CSS)编写自定义的水豚选择器

  20. 20

    自定义号码选择器

  21. 21

    创建自定义图像选择器控件-应用裁剪

  22. 22

    Angular 2自定义控件链接到带有控件值访问器,组合日期选择器的ngControl

  23. 23

    Angular 2自定义控件链接到带有控件值访问器,组合日期选择器的ngControl

  24. 24

    如何在LESS中编写〜选择器?

  25. 25

    如何在LESS中编写〜选择器?

  26. 26

    如何在scss中编写css类选择器

  27. 27

    如何在BootstrapVue的Carousel组件中自定义控件和指示器?

  28. 28

    如何在DateTimePicker控件中自定义日历?

  29. 29

    如何在 Leaflet 中创建自定义设置控件

热门标签

归档