Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 输入一天中的某个时间或持续时间最直观、最实用的方法是什么?_Silverlight_User Interface_Usability_Timespan_Hci - Fatal编程技术网

Silverlight 输入一天中的某个时间或持续时间最直观、最实用的方法是什么?

Silverlight 输入一天中的某个时间或持续时间最直观、最实用的方法是什么?,silverlight,user-interface,usability,timespan,hci,Silverlight,User Interface,Usability,Timespan,Hci,我正在Silverlight中构建一个业务线应用程序,需要让用户编辑两个.NET TimeSpan值。一个是一天中的某个时间(相对于午夜),另一个是持续时间。目前我使用两个文本框,格式为hh:mm。这是非常简单的,但肯定可以改进。我观察到有人在使用该应用程序,虽然有些人在快速进入时间方面没有问题,但其他人却在挣扎 鉴于我在Silverlight2中工作,您认为什么是完美的自定义控件,可以轻松地可视化和编辑这两个时间跨度 为了让事情变得更难,用户界面应该允许选择一天中的任何时间,精确到分钟,但要强

我正在Silverlight中构建一个业务线应用程序,需要让用户编辑两个.NET TimeSpan值。一个是一天中的某个时间(相对于午夜),另一个是持续时间。目前我使用两个文本框,格式为hh:mm。这是非常简单的,但肯定可以改进。我观察到有人在使用该应用程序,虽然有些人在快速进入时间方面没有问题,但其他人却在挣扎

鉴于我在Silverlight2中工作,您认为什么是完美的自定义控件,可以轻松地可视化和编辑这两个时间跨度

为了让事情变得更难,用户界面应该允许选择一天中的任何时间,精确到分钟,但要强调正常工作日内的时间(例如:上午8:00-下午5:00)。一些用户倾向于输入2:00(am),而实际上是指下午2:00


在我的应用程序中,我倾向于将时间和持续时间调整为5分钟的间隔。作为一个背景,这个应用程序类似于一个房间预订应用程序,人们可以指定他们想要房间的时间和时间。

这可能取决于你需要数据的准确性以及数据的变化程度。如果它不需要非常精确,而且变化不大,你可以这样做

Task was performed at [select start time...] o'clock for [select duration...]
其中,[select start time…]是一个每小时的下拉列表,[select duration…]是一个包含常见场景的下拉列表,如“30分钟”、“1小时”、“2小时”


如果它需要灵活,也许只需使用句子结构,用文本框替换下拉列表,就可以让所有初次使用的用户都明白这一点。

在我的一个web应用程序中,我使用了一个带两个手柄的滑块

例如:

|.........Y-----------------Y...|
         5AM               8PM
当然,我不需要像你那样高精度,但我相信稍微长一点的滑块5分钟间隔是可能的


为了强调正常工作日,您可以为滑块的背景涂上正常工作日的不同颜色。或者让处理程序“捕捉”到正常工作日的开始和结束。

获取最新信息并使用新的面向时间的控件之一

看看Outlook,它可能会使用默认为正常半小时的下拉列表(对我来说;),如果需要更高的精度,然后可以手动编辑选择。当开始时间更改时,持续时间也会随之更改,默认为一小时或其他时间

我以前在一个旧的web应用程序中使用过文本框,就像您一样,还添加了双击文本框的选项,以显示一个类似上面Outlook示例的快速选择小部件。也许一个按钮或其他一些银光魔法可以增强这一点


在Outlook中,垂直时间线(如日历日)可以拖动会议“框”的顶部和底部,这对我来说是放置和调整预订的最直观或最快捷的方式。如果它的前缀是一个小时左右的时间,那么可以很容易地拖动它来更改开始时间-顶部和底部的大小可以更改持续时间。

扩展Anthony所说的内容,Silverlight Toolkit 2009年3月发布的版本包括时间选择器和时间上下控件。 您可以在以下位置看到带有2个弹出窗口的TimeUpDown和TimePicker的实时演示:

我实际上拥有这个控件的特性集和API,所以我现在非常熟悉输入时间的最佳形式。 我们可以就时间投入讨论一系列最佳实践。所有这些都可以在控件中轻松找到

在一些概念上,我们不得不进行创新(比如“时间智能感知”功能),但大多数情况下,我们使用的是真正经过时间考验的概念。(没有双关语)

然而,作为v1这些控件的非目标的一部分,我们决定不支持时间范围。如果您觉得时间范围是我们本机应该支持的内容,请在codeplex上提出以下建议: 我们根据问题中的投票数量和用户场景积极地对项目进行优先级排序

现在,我建议你只使用2个计时器。
高级可视化(如多选标尺或多滑块)是进行时间范围输入的一种方法,但您必须有一个可靠的全球化文本输入系统,以提供备用选项

现在是询问用户想要完成什么任务的好时机。您可以在此基础上设计系统的性能。例如,在Outlook中,人们通常输入时间是因为他们试图安排会议——因此您可以很容易地将“2”或“2:00”定义为下午2点,因为很少有用户尝试将会议安排在凌晨2点。这听起来与您的应用程序类似

如果你观察你的用户,他们很可能也会安排典型的时间——这些时间应该很容易在你的界面中指定。例如,如果大多数会议都是50分钟长,那么这应该非常突出,可能是一个按钮或其他一键式选项


我不建议发明一个新的输入小部件。你的输入工具越标准,你的用户在使用你的产品时需要考虑的就越少。专注于你逻辑中的智慧,找出(并向用户展示)你认为他们在要求什么。

好建议-我正在处理的是几个月前的问题。谢谢Justin的意见。。。实际上我现在正在使用March09工具包时间选择器。我为工期控制创建了一个新的工作项:你骗不了我。那个双关语完全是故意的。计时器的文档在哪里?例如,什么是TimePicker.Value数据类型?我要把它绑定到时间跨度还是日期时间上。谢谢亚历克斯,你说得很对。我最终放弃了滑块的想法,转而支持最新Silverlight工具包中的时间输入控件。它们允许您以简单文本的形式输入时间,并将解析几乎所有内容。也就是说,我目前正在编写一些代码,以便从我们的DailyWTF时间表系统导入日期和时间。