Pregunta

Estoy creando una aplicación de línea de negocio en Silverlight y necesito que el usuario edite dos valores de .NET TimeSpan.Uno es la hora del día (relativo a la medianoche) y el otro es la duración.Actualmente estoy usando dos cuadros de texto, formateados como hh:mm.Esto es bastante sencillo, pero definitivamente podría mejorarse.He observado a personas que utilizan la aplicación y, si bien algunos no tienen problemas para entrar rápidamente en los tiempos, otras personas tienen dificultades.

Dado que estoy trabajando en Silverlight2, ¿cuál consideraría el control personalizado perfecto que le permita visualizar y editar fácilmente estos dos TimeSpans?

Para hacer las cosas más difíciles, la interfaz de usuario debería permitir seleccionar cualquier hora del día con precisión al minuto, pero enfatizar las horas dentro de la jornada laboral normal (por ejemplo:8:00 am - 5:00 pm).Algunos usuarios tienden a ingresar las 2:00 (am) cuando en realidad quieren decir 2:00 p.m.

En mi aplicación, tiendo a alinear los tiempos y las duraciones en intervalos de 5 minutos.A modo de contexto, esta aplicación es similar a una aplicación de reserva de habitaciones donde las personas especifican cuándo y por cuánto tiempo quieren una habitación.

¿Fue útil?

Solución

En una de mis aplicaciones web he utilizado un slider con 2 asas.

Ejemplo:

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

Por supuesto que no era necesario que la alta precisión como lo hace, pero yo creo que con un poco más largo deslizador intervalos de 5min serían posibles.

Para enfatizar día normal de trabajo, usted podría color de fondo de la corredera en diferente color para día normal de trabajo. O hacen que los manipuladores de "chasquido" para iniciar y terminar la jornada laboral normal.

Otros consejos

Probablemente depende de la precisión que necesita sus datos y la forma en que varía Puede ser. Si no necesita ser perfectamente preciso y no varía mucho, usted podría hacer algo como

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

donde [seleccionar el tiempo de inicio ...] es un desplegable con cada hora y [seleccionar la duración ...] es un desplegable con los escenarios comunes de lo que se está realizando un seguimiento como "30 minutos", "1 hora", " 2 horas "

Si tiene que ser flexible, tal vez sólo ir con la estructura de la oración y la sustitución de los jalones con cuadros de texto que dejar claro a todos los usuarios por primera vez.

Obtener la última Sliverlight Toolkit y utilizar uno de los nuevos controles orientados Tiempo

Mira de Outlook tal vez, que utiliza menús desplegables que por defecto a la mitad de horas sanos (para mí de todos modos;) y las selecciones se pueden editar manualmente después si se desea una mayor precisión. La duración también se sigue cuando se cambia la hora de inicio, y por defecto a una hora o algo así.

He utilizado cuadros de texto en una aplicación web de edad antes al igual que usted, con la opción adicional de doble clic sobre ellos para que aparezca un widget de selección rápida como el anterior Ejemplo de Outlook. Tal vez un botón o alguna otra magia Silverlight pueden mejorar eso.

Una línea de tiempo vertical como un día del calendario en Outlook donde se puede arrastrar la parte superior e inferior de una "caja" reunión es para mí la forma más rápida más instuitive o al menos para colocar y ajustar una reserva. Tal vez si se llena previamente con una que se extiende por una hora o así, fácilmente se puede arrastrar para cambiar la hora de inicio -. Con la parte superior e inferior de tamaño variable para cambiar la duración

Ampliando lo que dijo Anthony, la versión de marzo de 2009 de Silverlight Toolkit incluye controles TimePicker y TimeUpDown.Puede ver una demostración en vivo de TimeUpDown y TimePicker con 2 ventanas emergentes en:http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201#TimeUpDown

En realidad, poseía el conjunto de funciones y la API para este control, por lo que hoy en día estoy muy familiarizado con cuál es la mejor forma de ingresar la hora.Hay una lista completa de mejores prácticas de las que podemos hablar para el ingreso de tiempo.Todo lo cual actualmente se encuentra fácilmente en los controles.

En algunos conceptos hemos tenido que innovar (como la función "Time Intellisense") pero principalmente estábamos usando conceptos probados en tiempo real.(sin juego de palabras)

Sin embargo, como parte de los objetivos no establecidos para estos controles para la versión 1, decidimos no admitir rangos de tiempo.Si cree que los rangos de tiempo son algo que deberíamos admitir de forma nativa, no dude en sugerir esto en Codeplex:http://silverlight.codeplex.com/WorkItem/Create.aspxPriorizamos activamente los elementos según la cantidad de votos y los escenarios de usuario solicitados en los problemas.

Por ahora, te sugiero que uses solo 2 TimePickers.Las visualizaciones avanzadas (como una regla de selección múltiple o un control deslizante múltiple) son una forma de ingresar el rango de tiempo, pero debe tener un sistema de ingreso de texto globalizado sólido como opción alternativa.

Este es un buen momento para preguntar qué tarea sus usuarios están tratando de lograr. Puede diseñar el rendimiento de su sistema basado en esto. En Outlook, por ejemplo, las personas suelen entrar en el tiempo porque están tratando de programar una reunión - para que pueda eliminar la ambigüedad fácilmente "2" o "2:00" para referirse a 14:00, ya que muy pocos usuarios están tratando de programar las reuniones a las 2 a.m. Esto suena similar a su aplicación.

Si nos fijamos en sus usuarios, es probable que también se programará para los tiempos típicos - éstos deben ser fáciles de especificar en su interfaz. Por ejemplo, si la mayoría de las reuniones son de 50 minutos de duración, que debe ser muy relevante, tal vez un botón u otra opción de un solo clic.

No recomendaría la invención de un nuevo widget de entrada. Cuanto más estándar de su herramienta de entrada, menos sus usuarios tienen que pensar cuando se utiliza el producto. Concentrarse en la inteligencia dentro de su lógica, calcular (y mostrando al usuario) lo que usted piensa que están pidiendo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top