【万里征程——Windows App开发】DatePicker&Timepicker

本文深入探讨了DatePicker和TimePicker控件的高级用法,包括如何限制用户选择未来时间、设定默认时间及时间范围,以及如何通过MinuteIncrement属性控制分钟增量。

在前面我们走马观花地介绍了一大堆控件,其中自然也包括这DatePicker和TimePicker,那么稍微高级些的用法呢?

如果你想做一个关于健身、闹钟等的App,那么不可避免的会用到时间这些控件了。

<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,那么也可以直接在后台代码中这样写哦。

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

我还做了一个小测试呢,在Loaded事件中让时间增加11年,在OnNavigatedTo事件中让时间增加10年,结果——结果是增加了11年啦,看来还是自家的Loaded更厉害嘛。

接下来就是TimePicker啦,回到健身的话题,假设哈,6点到18点才适合运动,那么我们的Microsoft Band就做了以下这么个要求(开玩笑啦)。

    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 = "此时间吧不适合运动的吧?";
            }       
        }        

也许你还想控制手环上时间选择器的初始时间,那么代码来了。

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

作为强迫症患者呢,每次我设定闹钟的时候都要设置在一个比较好的时间,比如被5整除啦、质数啦。这里可以用MinuteIncrement属性来控制分钟的增量哟,比如增量为5呀。从小学起就飞得把电子手表的时间给设置成24小时制的,这个也是可以实现的,ClockIdentifier设置成24HourClock就搞定啦。

这篇博客比较简单,因此也没有配图。那么,下一篇再见咯,感觉大家的支持!

为使本文得到斧正和提问,转载请注明出处:
http://blog.youkuaiyun.com/nomasp

版权声明:本文为 NoMasp柯于旺 原创文章,未经许可严禁转载!欢迎访问我的博客:http://blog.youkuaiyun.com/nomasp

转载于:https://my.oschina.net/nomasp/blog/503476

内容概要:本文介绍了一个基于MATLAB实现的无人机三维路径规划项目,采用蚁群算法(ACO)与多层感知机(MLP)相结合的混合模型(ACO-MLP)。该模型通过三维环境离散化建模,利用ACO进行全局路径搜索,并引入MLP对环境特征进行自适应学习与启发因子优化,实现路径的动态调整与多目标优化。项目解决了高维空间建模、动态障碍规避、局部最优陷阱、算法实时性及多目标权衡等关键技术难题,结合并行计算与参数自适应机制,提升了路径规划的智能性、安全性和工程适用性。文中提供了详细的模型架构、核心算法流程及MATLAB代码示例,涵盖空间建模、信息素更新、MLP训练与融合优化等关键步骤。; 适合人群:具备一定MATLAB编程基础,熟悉智能优化算法与神经网络的高校学生、科研人员及从事无人机路径规划相关工作的工程师;适合从事智能无人系统、自动驾驶、机器人导航等领域的研究人员; 使用场景及目标:①应用于复杂三维环境下的无人机路径规划,如城市物流、灾害救援、军事侦察等场景;②实现飞行安全、能耗优化、路径平滑与实时避障等多目标协同优化;③为智能无人系统的自主决策与环境适应能力提供算法支持; 阅读建议:此资源结合理论模型与MATLAB实践,建议读者在理解ACO与MLP基本原理的基础上,结合代码示例进行仿真调试,重点关注ACO-MLP融合机制、多目标优化函数设计及参数自适应策略的实现,以深入掌握混合智能算法在工程中的应用方法。
【51系列微控制器简介】 51系列微控制器属于嵌入式控制单元,源自Intel公司早期开发的8051架构,因其集成度高、成本低廉且易于上手,在各类电子装置中普遍采用。该芯片内部通常包含中央处理器、随机存取存储器、只读存储器、定时计数单元以及多组并行输入输出接口,能够自主执行数据运算与设备调控功能。 【心形彩灯动态显示方案】 利用51系列微控制器实现的心形彩灯动态显示方案,是将微电子控制技术与视觉光效设计相融合的典型实践。该方案通过微控制器对发光二极管的发光强度及闪烁时序进行精确调度,从而呈现连续变化的多彩心形光影图案。其实施过程主要涵盖以下技术环节: 1. **外围电路连接**:心形灯阵中的各色发光二极管需经由适配的驱动电路与微控制器的通用输入输出引脚相连,每个发光单元可独立对应一个或多个引脚以实现分路调控。 2. **色彩合成与信号输出**:全彩发光二极管多采用红绿蓝三原色混光原理,通过调整各基色通道的占空比可合成丰富色调。微控制器需分别调控各通道的脉冲宽度调制信号以生成目标色彩。 3. **控制代码开发**:采用C语言等嵌入式编程语言编写控制指令集,例如运用定时中断机制设定闪烁周期,结合循环结构与逻辑判断实现动态模式切换。 4. **光效序列算法**:动态光效如渐变流水、明暗呼吸、光谱循环等需通过特定算法实现,需根据实际显示需求对时序参数进行数学建模与优化。 5. **代码转化与写入**:完成源代码编写后,使用专用编译工具生成机器可识别的十六进制文件,再通过在线编程接口将代码固化至微控制器的程序存储器。 6. **系统验证与调整**:在实体硬件上运行程序并观测实际光效,根据显示效果对电路参数或程序逻辑进行迭代修正,确保光效符合设计规范。 7. **供电方案设计**:为保障长期稳定运行,需设计合理的电源稳压与滤波电路,控制整体功耗并避免电压波动对器件造成影响。 8. **可靠性保障措施**:设计阶段需考虑电气隔离、散热结构等安全要素,防止过压、过热等异常情况导致系统故障。 综上所述,该心形彩灯演示方案是一项融合硬件电路构建、嵌入式软件开发、控制算法设计及系统调试的综合实践项目,对于深入理解微控制器工作原理、提升工程实现能力具有显著促进作用。通过完整实施此类项目,既可巩固微控制器基础应用技能,亦能培养系统性解决复杂技术问题的创新能力。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值