5

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

鉴于我在 Silverlight2 中工作,您认为完美的自定义控件可以让您轻松可视化和编辑这两个 TimeSpan 吗?

更难的是,UI 应该允许选择一天中的任何时间,精确到分钟,但要强调正常工作日内的时间(例如:上午 8:00 - 下午 5:00)。一些用户在他们真正的意思是下午 2:00 时倾向于输入 2:00 (am)。

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

4

6 回答 6

5

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

例子:

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

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

为了强调正常工作日,您可以为正常工作日使用不同颜色的滑块背景着色。或者让处理程序“快速”开始和结束正常工作日。

于 2009-03-22T09:08:12.857 回答
1

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

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

其中 [select start time...] 是每小时的下拉菜单,而 [select duration...] 是一个下拉菜单,其中包含您正在跟踪的常见场景,例如“30 分钟”、“1 小时”、“2 小时”

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

于 2009-03-22T07:13:44.350 回答
1

获取最新的Sliverlight 工具包并使用新的面向时间的控件之一

于 2009-03-22T14:02:49.123 回答
1

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

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

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

于 2009-03-22T14:50:13.863 回答
1

扩展 Anthony 所说的内容,Silverlight Toolkit 2009 年 3 月版包括 TimePicker 和 TimeUpDown 控件。您可以在以下位置查看带有 2 个弹出窗口的 TimeUpDown 和 TimePicker 的现场演示: 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 个 TimePicker。高级可视化(如多选标尺或多滑块)是进行时间范围输入的一种方式,但您必须有一个可靠的全球化文本输入系统作为后备选项。

于 2009-03-23T22:44:15.307 回答
1

这是询问您的用户正在尝试完成什么任务的好时机。您可以在此基础上制作系统的性能。例如,在 Outlook 中,人们通常会输入时间,因为他们正在尝试安排会议——因此您可以轻松地将“2”或“2:00”区分为下午 2 点,因为很少有用户尝试在 2 点安排会议是。这听起来与您的应用程序相似。

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

我不建议发明一个新的输入小部件。您的输入工具越标准,您的用户在使用您的产品时就越不需要思考。专注于你的逻辑中的聪明才智,弄清楚(并向用户展示)你认为他们想要什么。

于 2009-05-01T14:39:57.843 回答