【萬里征程——Windows App開發】DatePicker&Timepicker

在前面咱們蜻蜓點水地介紹了一大堆控件,其中天然也包括這DatePicker和TimePicker,那麼稍微高級些的用法呢?markdown

若是你想作一個關於健身、鬧鐘等的App,那麼不可避免的會用到時間這些控件了。ide

<DatePicker x:Name="datePicker" Header="NoMasp Date" Foreground="Beige"/>          
<Button x:Name="btnOK" Click="btnOK_Click" Content="肯定" Foreground="Cyan" Margin= "292,378,0,352" >
     <Button.Flyout>
          <Flyout>
              <TextBlock x:Name="tblock1" Foreground="Fuchsia"/>
          </Flyout>
     </Button.Flyout>
</Button>

那麼咱們可能須要所選定的時間是將來時間,也就是比應用運行時的時間要大。獲取當前選中的時間給程序的其餘部分使用也是很簡單的,我這裏的year等都在以前定義過了哦,在函數內定義但是不明智的喲。函數

private void btnOK_Click(object sender, RoutedEventArgs e)
        {

            if(datePicker.Date>DateTimeOffset.Now)
            {
                tblock1.Text = string.Format("你所選中的時間是:{0}。", datePicker.Date.ToString("D"));
            }
            else
            {
                tblock1.Text = "噢!你想要穿越嗎?";
            }

            year = datePicker.Date.Year;
            month = datePicker.Date.Month;
            day = datePicker.Date.Day;      
        }

有意思的事情又來了,若是你是想要作一個時間囊,默認的時間就是10年以後,那麼DatePicker的初始事件若是正好就是10年後不是很是好嗎。那麼咱們要作的呢,首先就是給DatePicker的Loaded寫一條事件啦。(哈哈,我以爲App是保存不了10年喲)測試

private void datePicker_Loaded(object sender, RoutedEventArgs e)
{
    datePicker.Date = DateTimeOffset.Now.AddYears(10);
}

若是不想興師動衆去用DatePicker的Loaded,那麼也能夠直接在後臺代碼中這樣寫哦。ui

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    datePicker.Date = DateTimeOffset.Now.AddYears(10);
}

我還作了一個小測試呢,在Loaded事件中讓時間增長11年,在OnNavigatedTo事件中讓時間增長10年,結果——結果是增長了11年啦,看來仍是自家的Loaded更厲害嘛。spa

接下來就是TimePicker啦,回到健身的話題,假設哈,6點到18點才適合運動,那麼咱們的Microsoft Band就作了如下這麼個要求(開玩笑啦)。.net

private void btnOK_Click(object sender, RoutedEventArgs e)
        {
            TimeSpan startTime = new TimeSpan(6, 0, 0);
            TimeSpan endTime = new TimeSpan(18, 0, 0);

            if(timePicker.Time>=startTime&&timePicker.Time<=endTime)
            {
                tblock1.Text = string.Format("這段時間運動都是很好的哦——{0}。", timePicker.Time.ToString());
            }
            else
            {
                tblock1.Text = "此時間吧不適合運動的吧?";
            }       
        }

也許你還想控制手環上時間選擇器的初始時間,那麼代碼來了。code

protected override void OnNavigatedTo(NavigationEventArgs e)
{                                              
     timePicker.Time = new TimeSpan(23, 0, 0);
}

做爲強迫症患者呢,每次我設定鬧鐘的時候都要設置在一個比較好的時間,好比被5整除啦、質數啦。這裏能夠用MinuteIncrement屬性來控制分鐘的增量喲,好比增量爲5呀。從小學起就飛得把電子手錶的時間給設置成24小時制的,這個也是能夠實現的,ClockIdentifier設置成24HourClock就搞定啦。orm

這篇博客比較簡單,所以也沒有配圖。那麼,下一篇再見咯,感受你們的支持!xml

爲使本文獲得斧正和提問,轉載請註明出處:
http://blog.csdn.net/nomasp

相關文章
相關標籤/搜索