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. Spring Boot系列学习文章(一) -- Intellij IDEA 搭建Spring Boot项目

    前言: 最近做的一个项目是用Spring Boot来做的,所以把工作中遇到的一些知识点.问题点整理一下,做成一系列学习文章,供后续学习Spring Boot的同仁们参考,我也是第一次接触Spring ...

  2. Mockjs 前端接口数据模拟

    在前后端分离的项目中,通常需要启动一个后台服务器来配合前端项目的接口需求.Mockjs的作用是拦截ajax请求并模拟各种数据返回,让前端开发可以更加自由独立. 安装 npm install mockj ...

  3. Android热修复之 - 收集崩溃信息上传服务器

    1.概述 大致的流程就是在用户崩溃的时候,我们获取崩溃信息.应用当前的信息和手机信息,然后把它保存到手机内存卡,再找我就直接找出来看看.后来衍生到上线后某些奇葩机型会有部分问题,所以不得不上传到服务器 ...

  4. Python+Selenium笔记(二):配置谷歌+IE环境

    #有的时候可能要访问外国的网站下载资料或工具,这时可能出现各种问题,例如谷歌人机验证显示不了.网站打不开等,建议使用一个FQ软件 (一)  设置IE (1)   http://docs.seleniu ...

  5. Prometheus Node_exporter 之 Network Netstat TCP

    Network Netstat TCP /proc/net/snmp 1. TCP Segments type: GraphUnit: shortLabel: Segments out (-) / i ...

  6. STL之容器(containers) 简介

    什么是容器? 容器用来存储数据的,数据可以是用户自定义类型(对象),也可以是预定义类型,c++中的容器主要使用如vector,list (顺序容器) 这些都是已经封装好了. 1.结构(struct): ...

  7. 反向代理负载均衡调度:nginx

    一.概述 反向代理:以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个 ...

  8. Python中则正则表达式

    http://blog.csdn.net/carolzhang8406/article/details/6335072 http://www.iteedu.com/plang/python/pyred ...

  9. Questions about UIUC and USC

    Questions about UIUC and USC I am admitted to University of Illinois at Urbana-Champaign (UIUC) Prof ...

  10. gnome美化

    调整工具更新可以移动窗口控件gnome-tweak-tool # dnf install gnome-tweak-tool 命令行启动,并且要在普通用户下启动 $ gnome-tweak-tool 在 ...