What's new in Windows 8.1 Part 4
這篇為大家介紹我們常用的控制項DatePicker。DatePicker可以很方便的讓我們存取日期跟時間,取代了用很多ComboBox的方法。先來看看簡單的Code (也不會有難的Code.....)
下面是簡單的DatePicker宣告,有個很方便的屬性是Header它可以讓你的時間有個小標,讓使用者很清楚選時間的目的。
1: <DatePicker x:Name="datePicker" Header="Select a date:" DateChanged="datePicker_DateChanged" Margin="0,0,0,20"/>
2: <TimePicker x:Name="timePicker" Header="Select a time:" Time="12:00:00" TimeChanged="timePicker_TimeChanged"/>
1: private void datePicker_DateChanged(object sender, DatePickerValueChangedEventArgs e)
2: {
3: DateTimeFormatter dateFormatter = new DateTimeFormatter("shortdate");
4:
5: rootPage.NotifyUser("Date changed to " + dateFormatter.Format(e.NewDate), NotifyType.StatusMessage);
6: }
宣告一個 DateTimeFormatter 然後把 e.NewDate 傳給 DateTimeFormatter.Format 這樣我們就知道新的DateTime。DateTimeFormatter 還有很多Format的格式,不只shortdate。想了解更多可以參考官方文件 http://msdn.microsoft.com/zh-TW/library/windows/apps/windows.globalization.datetimeformatting.datetimeformatter
如果我們要預設一個日期也很簡單,可以利用datePicker.Date去做設定。
1: this.datePicker.Date = new DateTimeOffset(new DateTime(2013, 1, 31));
我們也可以預設當天的日期
1: this.datePicker.Date = DateTimeOffset.Now;
那如果常常都有人來亂,要求他輸入日期都亂輸入,譬如要填生日結果填2999年9月9號根本在那邊鬧,不然就是1666年6月6號。這時候該怎麼辦呢?我們可以有效的利用 MinYear 跟 MaxYear 。最小是2000年,最大是2020這樣就比較不能亂輸入。
1: this.datePicker.MinYear = new DateTimeOffset(new DateTime(2000, 2, 1));
2: this.datePicker.MaxYear = new DateTimeOffset(new DateTime(2020, 2, 1));
另外,如果你的資料根本不需要年,但是預設有年站空間也是有辦法解決的。可以利用YearVisible來控制要不要顯示年的控制項
1: this.datePicker.YearVisible = false;