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

时间:2009-03-22 07:02:23

标签: silverlight user-interface usability timespan hci

我正在Silverlight中构建业务线应用程序,需要让用户编辑两个.NET TimeSpan值。一个是一天中的某个时间(相对于午夜),另一个是持续时间。目前我正在使用两个TextBox,格式为hh:mm。这非常简单,但绝对可以改进。我观察过人们使用这个应用程序,虽然有些人很快就进入了,但其他人都在努力。

鉴于我在Silverlight2工作,您会看到什么是完美的自定义控件,可以轻松地让您可视化和编辑这两个TimeSpans?

为了使事情变得更加困难,用户界面应该允许在一天中的任何时间精确选择,但要强调正常工作日内的时间(例如:上午8:00 - 下午5:00)。有些用户倾向于在凌晨2点(凌晨2点)进入凌晨2点。

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

6 个答案:

答案 0 :(得分:5)

在我的一个Web应用程序中,我使用了带有2个手柄的滑块。

示例:

|.........Y-----------------Y...|
         5AM               8PM

当然我并不需要像你那样高精度,但我相信滑块稍微长一些,间隔时间可能是5分钟。

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

答案 1 :(得分:1)

这可能取决于您对数据的准确程度以及数据的变化程度。如果它不需要完全准确并且变化不大,你可以做类似

的事情
Task was performed at [select start time...] o'clock for [select duration...]

其中[选择开始时间...]是每小时的下拉,[选择持续时间...]是一个下拉列表,其中包含您正在跟踪的“30分钟”,“1小时”,“ 2小时“

如果它需要灵活,可能只需要使用句子结构并用文本框替换下拉菜单就可以让所有初次使用的用户都清楚。

答案 2 :(得分:1)

获取最新的Sliverlight Toolkit并使用其中一个新的面向时间的控件

答案 3 :(得分:1)

或许看看Outlook,它使用默认为半小时的下拉(对我而言);然后如果需要更高的精度,则可以手动编辑选择。持续时间也会在开始时间更改后发生,默认为一小时或更长时间。

我之前在旧的Web应用程序中使用了文本框,并添加了双击它们以显示快速选择小部件(如上面的Outlook示例)的选项。也许按钮或其他一些Silverlight魔法可以增强它。

像Outlook中的日历日这样的垂直时间线,您可以拖动会议“框”的顶部和底部对我来说是最直观或最快捷的方式来放置和调整预订。也许如果它预先填充了一个小时左右,可以轻松拖动以改变开始时间 - 顶部和底部可调整大小以改变持续时间。

答案 4 :(得分:1)

扩展Anthony的说法,Silverlight Toolkit 2009年3月发布包括TimePicker& TimeUpDown控件。 您可以在以下位置看到TimeUpDown和TimePicker的现场演示,其中包含2个弹出窗口: http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201#TimeUpDown

我实际拥有此控件的功能集和API,所以我现在非常熟悉输入时间的最佳形式。 我们可以谈谈时间输入的最佳实践列表。所有这些目前都很容易在控件中找到。

关于我们必须创新的一些概念(如“时间智能感知”功能),但大多数情况下我们使用的是经过时间测试的概念。 (没有双关语)

但是,作为v1的这些控件的非目标的一部分,我们决定不支持时间范围。如果您觉得时间范围是我们应该原生支持的,请随时在codeplex上建议: http://silverlight.codeplex.com/WorkItem/Create.aspx 我们根据问题中的投票数量和用户情景积极确定项目的优先顺序。

目前,我建议你只使用2个TimePickers。 高级可视化(如多选标尺或多滑块)是进行时间范围输入的一种方式,但您必须拥有一个可靠的全球化文本输入系统,用于后备选项。

答案 5 :(得分:1)

现在是询问用户尝试完成哪项任务的好时机。您可以基于此来制定系统的性能。例如,在Outlook中,人们通常会输入时间,因为他们正在尝试安排会议 - 因此您可以轻松消除“2”或“2:00”的歧义,以表示下午2点,因为很少有用户尝试在2安排会议上午。这听起来与您的应用程序类似。

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

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