Какой самый интуитивно понятный и удобный способ ввода времени суток или продолжительности? - PullRequest
5 голосов
/ 22 марта 2009

Я создаю бизнес-приложение в Silverlight, и мне нужно, чтобы пользователь отредактировал два значения .NET TimeSpan. Один - это время суток (относительно полуночи), а другой - продолжительность. В настоящее время я использую два текстовых поля, отформатированные как чч: мм. Это довольно просто, но это определенно можно улучшить. Я наблюдал, как люди используют приложение, и, хотя у некоторых нет проблем с быстрым вводом времени, другие люди борются.

Учитывая то, что я работаю в Silverlight2, что вы считаете идеальным пользовательским элементом управления, который позволяет легко визуализировать и редактировать эти два TimeSpans?

Чтобы усложнить задачу, пользовательский интерфейс должен позволять выбирать любое время дня с точностью до минуты, но выделять время в течение обычного рабочего дня (например, с 8:00 до 17:00). Некоторые пользователи имеют тенденцию вводить 2:00 (утра), когда они действительно означают 2:00 вечера.

В моем приложении я стараюсь выровнять время и длительность с 5-минутными интервалами. Вкратце, это приложение похоже на приложение для бронирования номеров, где люди указывают, когда и как долго они хотят забронировать номер.

Ответы [ 6 ]

5 голосов
/ 22 марта 2009

В одном из моих веб-приложений я использовал слайдер с двумя ручками.

Пример:

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

Конечно, мне не нужна была такая высокая точность, как у вас, но я считаю, что с немного более длинным интервалом ползунка в 5 минут было бы возможно.

Чтобы подчеркнуть обычный рабочий день, вы можете покрасить фон ползунка в другой цвет для обычного рабочего дня. Или заставьте обработчики «привязываться» к началу и концу обычного рабочего дня.

1 голос
/ 01 мая 2009

Это прекрасное время, чтобы спросить, какую задачу пытаются выполнить ваши пользователи. На этой основе вы можете настроить производительность вашей системы. Например, в Outlook люди обычно вводят время, потому что они пытаются запланировать встречу - так что вы можете легко устранить неоднозначность «2» или «2:00», чтобы обозначить 14:00, потому что очень немногие пользователи пытаются запланировать встречи на 2 есть. Это похоже на ваше приложение.

Если вы посмотрите на своих пользователей, они, вероятно, также будут планировать на обычное время - это должно быть легко указать в вашем интерфейсе. Например, если большинство собраний длится 50 минут, это должно быть очень заметно, возможно, кнопка или другой вариант одним нажатием.

Я бы не рекомендовал изобретать новый виджет ввода. Чем более стандартен ваш инструмент ввода, тем меньше пользователи должны думать о вашем продукте. Сконцентрируйтесь на умах внутри вашей логики, выясняя (и показывая пользователю), что, по вашему мнению, они просят.

1 голос
/ 24 марта 2009

В дополнение к сказанному Энтони, выпуск Silverlight Toolkit March 2009 включает элементы управления 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. Расширенные визуализации (например, линейка с множественным выбором или ползунок) - это один из способов ввода временного диапазона, но у вас должна быть надежная глобализированная система ввода текста для альтернативного варианта.

1 голос
/ 22 марта 2009

Посмотрите на Outlook, возможно, он использует выпадающие списки, которые по умолчанию равны полчаса (для меня в любом случае;), а затем выбор может быть отредактирован вручную, если требуется более высокая точность. Продолжительность также следует, когда время начала изменяется, и по умолчанию составляет час или что-то еще.

Я использовал текстовые поля в старом веб-приложении раньше, как и вы, с добавленной возможностью двойного щелчка по ним, чтобы вызвать виджет быстрого выбора, подобный приведенному выше примеру Outlook. Возможно, кнопка или какая-то другая магия Silverlight может улучшить это.

Вертикальная временная шкала, похожая на календарный день в Outlook, где вы можете перетаскивать верхнюю и нижнюю части «окна» собрания, является для меня самым инстинктивным или, по крайней мере, самым быстрым способом размещения и корректировки бронирования. Возможно, если он предварительно заполнен тем, что занимает около часа, его легко перетаскивать, чтобы изменить время начала - с изменением размера верхней и нижней части, чтобы изменить продолжительность.

1 голос
/ 22 марта 2009

Получите последний Sliverlight Toolkit и используйте один из новых элементов управления, ориентированных на время

1 голос
/ 22 марта 2009

Вероятно, это зависит от того, насколько точны ваши данные и насколько они могут быть разными. Если он не должен быть абсолютно точным и не сильно отличается, вы можете сделать что-то вроде

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

где [выберите время начала ...] - это раскрывающийся список с каждым часом, а [выберите продолжительность ...] - это раскрывающийся список с распространенными сценариями для отслеживаемых значений, таких как «30 минут», «1 час», « 2 часа "

Если он должен быть гибким, возможно, просто следуя структуре предложений и заменяя раскрывающиеся списки текстовыми полями, это станет понятным для всех начинающих пользователей.

...