【万里征程——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

相关文章
相关标签/搜索