2009-03-22 38 views
5

Silverlight'ta bir iş kolu uygulaması yapıyorum ve kullanıcının iki .NET TimeSpan değerini düzenlemesi gerekiyor. Biri günün bir saati (gece yarısına göre) ve diğeri bir süredir. Şu anda hh: mm olarak biçimlendirilmiş iki TextBoxes kullanıyorum. Bu oldukça basit, ama kesinlikle geliştirilebilir. Uygulamayı kullanan insanları gözlemledim ve bazılarının zamana çabuk girmekte zorlanmasına rağmen, diğer insanlar mücadele ediyor.Günün saati veya süresine girmenin en sezgisel, kullanılabilir yolu nedir?

Silverlight2'de çalıştığım göz önüne alındığında, bu iki TimeSpans'ı görselleştirmenize ve düzenlemenize izin veren mükemmel özel denetim olarak ne görürdünüz?

İşleri daha da zorlaştırmak için, UI günün her hangi bir dakikasında dakikayı dakikasına kadar dakikasına kadar seçebilir, ancak normal iş günü içinde zamanları vurgular (örneğin: 8:00 - 17:00). Bazı kullanıcılar, gerçekten öğleden sonra 2:00 derken 2:00 (am) girme eğilimindedir.

Uygulamamda, süreleri ve süreleri 5 dakikalık aralıklarla hizalamaya eğilimliyim. Biraz arka plan olarak, bu uygulama insanların bir oda için ne zaman ve ne kadar süre istediklerini belirttikleri bir oda rezervasyon uygulamasına benzer.

cevap

5

Web uygulamalarımdan birinde 2 tutamaklı bir kaydırıcı kullandım.

Örnek: sizin gibi

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

Tabii ki yüksek hassasiyet gerek yoktu, ama ben biraz daha uzun sürgü 5 dk aralıklarla mümkün olacağını düşünüyoruz.

Normal çalışma gününü vurgulamak için, normal çalışma günü için kaydırıcının arka planını farklı renklerde boyayabilirsiniz. Veya normal iş gününün başlamasına ve sonlandırılmasına yönelik işleyicileri "ek" edin.

1

Verilerinize ne kadar hassas ihtiyaç duyduğunuza ve ne kadar değişken olabileceğine bağlı olabilir. mükemmel doğru olması gerekmez ve çok değişir vermezse, sen

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

gibi bir şey yapabileceğini [başlangıç ​​zamanı seçin ...] her saat ile bir açılan ve [süresini seçmek ...] "30 dk.", "1 saat", "2 saat", "2 saat" gibi izlediğiniz genel senaryolara sahip bir açılanmadır. Esnek olması gerekirse cümle yapısıyla devam edebilir ve değiştirebilir. Metin kutuları ile pulldowns tüm ilk kez kullanıcılar için açık hale getirecektir.

+0

Kesinlik konusunda iyi bir nokta – geofftnz

1

Bak Outlook belki de açılır listeler kullanan en aklı başında buçuk saat varsayılan (bana zaten;) ve seçimleri ardından elle düzenlenebilir sonradan daha yüksek hassasiyet istenirse. Süre, başlangıç ​​zamanı değiştirildiğinde ve varsayılan olarak bir saate veya başka bir şey olduğunda da izler.

Yukarıdaki Outlook Örneği gibi bir hızlı seçim widget'ı getirmek için çift tıklatma seçeneği eklendiğinde, sizin gibi eski bir web uygulamasında metin kutuları kullandım. Belki bir düğme veya başka bir Silverlight sihiri bunu geliştirebilir.

Outlook'ta bir toplantı gününün en altını ve en altını sürükleyebileceğiniz bir takvim günü gibi dikey bir zaman çizelgesi, bir rezervasyon yerleştirmek ve ayarlamak için bana en kolay ve en hızlı yoldur. Belki bir saat ya da öylesine yayılan biriyle önceden doldurulmuşsa, başlangıç ​​saatini değiştirmek için kolayca sürüklenebilir - süreyi değiştirmek için üst ve alt yeniden boyutlandırılabilir.

1

Anthony'nin söylediği gibi, Silverlight Toolkit Mart 2009 sürümünde TimePicker & TimeUpDown denetimleri bulunur. Sen 2 pop-up ile TimeUpDown ve TimePicker canlı demosunu görebilirsiniz: http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201#TimeUpDown

Ben Aslında özellik bu denetim için belirlenen ve API ait, bu yüzden bugünlerde giriş zamanına iyi formu olanla son derece iyi tanıdık . Zaman girişi için konuşabileceğimiz en iyi uygulamaların bir listesi var. Bunların hepsi kontrollerde kolayca bulunur. Bazı kavramlarda yenilik yapmak zorunda kaldık ("Zaman Intellisense" özelliği gibi) ancak çoğunlukla gerçek zamanlı test kavramları kullanıyorduk. (no pun no)

Ancak, v1 için bu denetimlerin amaç dışı hedeflerinin bir parçası olarak, zaman aralıklarını desteklememeye karar verdik. Zaman aralıklarının doğal olarak desteklenmesi gereken bir şey olduğunu düşünüyorsanız, bunu kodplex üzerinde önermek için çekinmeyin: http://silverlight.codeplex.com/WorkItem/Create.aspx Öğelerdeki sayılara ve kullanıcı senaryolarına göre öncelikli olarak öncelik sırasına göre öğeleri önceliklendiririz.

Şimdilik, sadece 2 TimePickers kullanmanızı öneririm. Gelişmiş görselleştirmeler (çoklu seçim cetveli veya çoklu kaydırıcı gibi) zaman aralığı girişi yapmanın bir yoludur, ancak geri dönüş seçeneği için sağlam bir küreselleştirilmiş metin giriş sistemine sahip olmanız gerekir.

+0

Giriş için teşekkürler Justin ... Şu anda March09 Toolkit zaman seçici kullanıyorum. Süre denetimi için yeni bir workitem oluşturdum: http://silverlight.codeplex.com/WorkItem/View.aspx?WorkItemId=2392 – geofftnz

+0

Beni kandıramazsınız. Bu ceza tamamen amaçlanmıştı. – MojoFilter

+0

TimePicker belgesindeki belgeler nerede? Örneğin, TimePicker.Value veri türü nedir? Bunu bir TimeSpan'a veya bir DateTime'a bağlarım. –

1

Bu, kullanıcılarınızın başarmaya çalıştığı görevi sormak için harika bir zamandır. Sisteminizin performansını buna göre düzenleyebilirsiniz. Örneğin, Outlook'ta insanlar genellikle bir toplantı planlamaya çalıştıklarından bu yana zaman ayırırlar. Bu nedenle, çok az kullanıcı 2'yi toplantı planlamaya çalıştıklarından, "2" veya "2:00" ifadelerini kolayca 2 de anlamlandırabilirsiniz. duyuyorum. Bu, uygulamanıza benzer geliyor.

Kullanıcılarınıza bakarsanız, muhtemelen tipik zamanlar için de zamanlama yaparlar - bunlar arayüzünüzde belirtilmesi kolay olmalıdır. Örneğin, çoğu toplantı 50 dakika sürüyorsa, bu çok belirgin, belki de bir düğme veya başka bir tek tıklama seçeneği olmalıdır.

Yeni bir giriş parçacığı icat etmenizi önermem. Giriş aracınız ne kadar standartsa, kullanıcılarınız ürününüzü kullanırken daha az düşünmelidir. Mantığınızın içindeki akıllılara odaklanın, ne istediğini düşündüğünüz şeyi (ve kullanıcıyı göstererek) anlayın.

+0

Teşekkürler Alex, neredeyse kafasına çivi vurdun. En son Silverlight Toolkit'teki zaman giriş kontrolleri lehine kaydırıcı fikrini bitirdim. Bunlar basit bir metin olarak bir zaman girmenizi sağlar ve hemen hemen her şeyi ayrıştırır. Bu, şu anda DailyWTF-değerli zaman çizelgeleme sistemimizden tarih ve saatleri almak için bir kod yazıyor. – geofftnz