UWP即Windows 10中的Universal Windows Platform简称。即Windows通用应用平台,在Windows 10 Mobile/Surface(Windows平板电脑)/PC/Xbox/HoloLens等平台上运行,uwp不同于传统pc上的exe应用,也跟只适用于手机端的app有本质区别。它并不是为某一个终端而设计,而是可以在所有windows10设备上运行。很早之前就安装了uwp开发模块,一直没怎么写。暑假期间写了一个智能闹钟的Demo,偶然看到决定 写写博客 记录记录。

一 布局

UWP的程序布局采用了竖条工具栏式,这种样式也应用在一些微软官方的UWP应用。主界面图如下所示。

                                          程序运行主界面

UWP 程序的界面设计语音是XAML,语言与WPF 是类似的,不过 具体还有有区别,在WPF中的有些控件在UWP中并不存在,所以并不能将WPF 设计好的界面直接用于UWP程序。由于自己本身对这个XAML(很少写WPF ,UWP)不精通, 界面只能这么凑合着(.....)

第一步: 搭建左侧工具栏页面:

                                                                 

      界面一:左侧工具栏主界面                                                                                                     界面二  Home 页面

程序工具栏左侧工具栏图标为 Segoe MDL2 图标 ,改变TextBlock的Text的值即可显示不同的图标,具体可参见(https://docs.microsoft.com/zh-cn/windows/uwp/design/style/segoe-ui-symbol-font),界面二为程序启动初始界面,中心为当前时间,右边为城市的信息以及天气信息。 右下脚字体为 Vladimir Script,(用来做艺术字 非常不错) (当时程序开发,时间,地点之类全部设置为英文格式)

                                                 

界面三: 翻译界面                                                                                                                                                                     界面四: 天气界面

翻译界面 之前从一个WPF 的程序搬过来了(进行简单修改),天气界面之保留了3天的天气状况查询   ,以及一个查询按钮

                                                                    

界面五       闹钟界面                                               界面五       用户控件(自己弄的一个闹钟管理)

主要界面就这些 ,语音识别部分的界面不在这部分。界面设计非常简陋。。

二 关键技术

1 ,天气部分:

    天气部分是采用OpenWeather API ,向OpenWeater 发送城市的信息,返回json文件,利用Newtonsoft.Json类库处理Json

2, 翻译部分:

    翻译部分是采用Azure 云翻译,这个参考了一个WPF程序代码。UWP的Http请求与原来Netframework 模块不同 ,花了一点时间去修改。

3,闹钟部分:

    闹钟部分最开始采用 线程,发现线程实现有问题,到了时间无法触发,最后采用了 消息通知功能(设置闹钟后,添加一个任务通知给程序)闹钟部分做了一个用户控件,在主界面的左上角有一个按钮,可以查看之前设置的闹钟,原本计划可以实现闹钟的删除,不过由于采用了消息通知 没找到删除的办法

4 语音部分:

语音部分在另外2程序中有体现,另外两份程序是功能类似不过没有语音功能, 语音功能主要包括: 朗读,识别声音为文字,识别声音做选项,识别声音做设置 。。。 该部分功能全部是Windows 10应用开发实战(第2版)中内容 ,由兴趣的可以从文章后的链接下载。 想体验语音功能的可以下载后2份程序。 不过微软的  语音识别功能技术并不强,或许是麦克风问题,我进行语音识别时总有识别不出的问题。而且 中文操作系统中,朗读部分是女性声音,英文操作系统是男性声音。

三  程序资料下载

1  程序合集:

链接:https://pan.baidu.com/s/1lgQG34ZL7dRmJdFk-6Cyiw
提取码:wop9

2 Windows 10应用开发实战(第2版)(pdf):

链接:https://pan.baidu.com/s/15G_WcEce5jsUDK9qE0P_Iw
提取码:3yf8

3 win10开发一些资料 :

链接:https://pan.baidu.com/s/1Lxwjug-i3n7jFfnwj6ctMA
提取码:n759

UWP-开发一个具有闹钟,天气预报,翻译,语音功能的Demo的更多相关文章

  1. [UWP 开发] 一个简单的Toast实现

    Toast简介 在安卓里Toast是内置原生支持,它是Android中用来显示显示信息的一种机制.它主要用于向用户显示提示消息,没有焦点,显示的时间有限,过一定的时间就会自动消失.在UWP中虽然没有原 ...

  2. Win10/UWP开发—使用Cortana语音与App后台Service交互

    上篇文章中我们介绍了使用Cortana调用前台App,不熟悉的移步到:Win10/UWP开发—使用Cortana语音指令与App的前台交互,这篇我们讲讲如何使用Cortana调用App的后台任务,相比 ...

  3. Win10/UWP开发—使用Cortana语音指令与App的前台交互

    Win10开发中最具有系统特色的功能点绝对少不了集成Cortana语音指令,其实Cortana语音指令在以前的wp8/8.1时就已经存在了,发展到了Win10,Cortana最明显的进步就是开始支持调 ...

  4. Win10/UWP开发—使用Cortana语音指令启动前台App

    这两天进群(53078485)找大咖的童鞋比较多,只是大咖比较忙,目前Demo还没有要到,这里先给大家转载一篇Aran大咖的博客学习下,以下是原文: Win10开发中最具有系统特色的功能点绝对少不了集 ...

  5. Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App

    安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...

  6. 用C#开发一个 UWP BLUETOOTH BLE 扫描APP

    什么是WINDOWS UWP UWP即Windows 10 中的Universal Windows Platform简称.即Windows通用应用平台,在Win 10 Mobile/Surface(W ...

  7. 如何在嵌入式Linux上开发一个语音通信解决方案

    开发一个语音通信解决方案是一个软件项目.既然是软件项目,就要有相应的计划:有多少功能,安排多少软件工程师去做,这些工程师在这一领域的经验如何,是否需要培训,要多长时间做完,中间有几个主要的milest ...

  8. Android | 教你如何用代码开发一个拍照翻译小程序

    引子   想必有很多小伙伴喜欢外出旅游,能去海外玩一圈那是更好不过了,旅游前大家一定会对吃.穿.住.行.游玩路线做各种攻略,然后满怀期待的出发- 想象中的旅游   出发前,想象中的旅游目的地可能有漂亮 ...

  9. 领域驱动和MVVM应用于UWP开发的一些思考

    领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...

随机推荐

  1. 对WebSocket技术的学习与探索(二)

    近日重新开始学习WebSocket技术,什么是WebSocket,在<对WebSocket技术的学习与探索(一)>文章中已经说明白了,还没理解可以看看这篇文章http://www.ruan ...

  2. 防微杜渐——读《C安全编码标准》

    防微杜渐——读<C安全编码标准> 首先这本书的名字是非常洋气的——<C安全编码标准>.然而映入眼帘的却不仅仅是冷冰冰的编码,还有那一套非常严谨的风险评估标准和问题处理方法.对于 ...

  3. synchronized的四种用法

    一 修饰方法  Synchronized修饰一个方法很简单,就是在方法的前面加synchronized,synchronized修饰方法和修饰一个代码块类似,只是作用范围不一样,修饰代码块是大括号括起 ...

  4. Oracle EBS 用户职责人员取值

    SELECT fu.user_name 用户名, fu.description 用户说明, fu.start_date 用户启用日期, fu.end_date 用户终止日期 --,fu.employe ...

  5. Netstat Commands for Linux Network Management

    netstat (network statistics) is a command line tool for monitoring network connections both incoming ...

  6. heckboxlist详细用法、checkboxlist用法、checkboxlist

    heckboxlist详细用法.checkboxlist用法.checkboxlist for (int i = 0; i < CheckBoxList1.Items.Count; i++) { ...

  7. orcl 如何快速删除表中百万或千万数据

    orcl 数据库表中数据达到上千万时,已经变的特别慢了,所以时不时需要清掉一部分数据. bqh8表中目前有10000000条数据,需要保留19条数据,其余全部清除掉. 以下为个人方法: 1.首先把需要 ...

  8. spring mvc 接收 put参数

    web.xml中: <!-- 用户put提交参数 --> <filter> <filter-name>HttpMethodFilter</filter-nam ...

  9. Custom Voice 操作步骤

    首先,准备数据 1.Unicode格式的Transcript 2wav格式语音数据,并打包 好,现在POSTMAN进行api测试. 先拿着订阅密钥(Subscription Key)获取令牌(Toke ...

  10. 一、Ajax 二、JSON数据格式 三、Ajax+Jquery 四、分页的实现

    一.Ajax概述###<1>概述 ###<2>组成 以XMLHttpRequest为核心,发送Ajax请求和接收处理结果 以javascript为语言基础 以XML/JSON作 ...