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. Java Web工程搭建方法

    搭建一个简单的Web工程主要是以下几步: 一.下载所需工具 ①java   ②eclipse  ③tomcat 注意:java与eclipse版本不匹配(32位或者64位),会导致eclipse启动时 ...

  2. Asp.Net Core使用System.Drawing.Common部署到docker报错问题

    Asp.Net Core 2.1发布后,正式支持System.Drawing.Common绘图了,可以用来做一些图片验证码之类的功能.但是把网站部署到docker容器里运行会遇到很多问题,也是非常闹心 ...

  3. shell脚本常用技巧

    shell脚本常用技巧 1.获取随机字符串或数字 ~]#echo $RANDOM | md5sum | cut -c 1-6 ~]#openssl rand -base64 4 | cut -c 1- ...

  4. SQL Server 从2000复制数据到2008及以上版本的一种方法

    1.通过Linked Servers 执行sql出现错误提示,无法执行复制数据操作. sql: insert into tb_User select from [**.**.*.**].DB.dbo. ...

  5. 转:sql语句优化

    性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化. 为了获得稳定的执行性能,SQL语句越简单越好.对复杂的SQL语句,要设 ...

  6. 远程桌面web连接

      我们可以利用web浏览器搭配远程桌面技术来连接远程计算机,这个功能被称为远程桌面web连接(Remote desktop web connection),要享有此功能,请先在网络上一台window ...

  7. ubuntu下如何设置中文输入法

    许多朋友在用ubuntu操作系统时,因没有中文输入法而苦恼!今天我就和大家分享一下如何在ubuntu下设置如输入法的简单方法: 1 在任务栏的右上角设置选项-——>system settings ...

  8. python基础学习10----集合

    集合具有无序性,互异性 一.集合的建立 空集合 s=set() s={}#这样默认为是一个空字典 集合内的元素是可哈希的即不可变的数据类型 s={1,2,3,4} s=set([1,2,3,4]) s ...

  9. 读高性能JavaScript编程 第三章

    第三章  DOM Scripting  最小化 DOM 访问,在 JavaScript 端做尽可能多的事情. 在反复访问的地方使用局部变量存放 DOM 引用. 小心地处理 HTML 集合,因为他们表现 ...

  10. python第二十九课——文件读写(readline()和readlines()的使用)

    演示readline()和readlines()的使用: #1.打开文件 f3=open(r'a.txt','r',encoding='gbk') #2.读取数据 content3=f3.readli ...