What's new in Windows 8.1 Part 4

  • 821
  • 0

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"/>
 
 
我們可以利用DateChanged這個事件來知道使用者改變了控制項,那我們要怎麼知道控制項的裡面選的內容呢?
 
   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;