摘要:SkyDrive简单介绍全称是Windows Live SkyDrive,它是微软推出的一款在线储存文件的网盘,用户帐户需要用微软帐户登录。现在Win8 系统自带这款应用,当我们装完win8系统,就可以看到Metro 桌面有这款应用,如果我们的win8系统是用微软帐户登录,那么进入这个应用就不会再要求登录了,这也是我后面要介绍的,在win8下,Live帐号单点登录的情况。应用中集成SkyDrive的好处其实这个好处也可以说是网盘的优点吧,网盘的优点我们都知道就是很方便,不需要依赖外接存储设备或某台PC,只要有网络我们就很方便浏览我们的文件。在我们应用中,我们可以依赖微软开放的SkyDrive
阅读全文
摘要:在开发中,涉及图片的处理经常需要用到WritableBitmap对象,这个对象可以直接作为数据源赋值给Image控件,但若要保存这个对象,我们只能将其序列化保存为一个图片文件,自然需要用到图片的编解码库:将WritableBitmap保存为图片文件WriteableBitmap^ wb =“您的源”;IBuffer^ buffer = wb->PixelBuffer;DataReader^ dataReader = DataReader::FromBuffer(buffer);Array<unsigned char,1>^ fileContent =ref new Array
阅读全文
摘要:在项目需求中,我们经常需要实现多语言应用,专业术语就是资源全球化。在WinRT库中,在命名空间Windows.Globalization下也提供了相应的全球化资源的方法。下面咱就来一步步实现一个简单的全球化:1、准备好我们的资源,在这之前,有个” BCP-47”这个名字需要了解,我们资源语言包的名称需要按照BCP-47规则来命名。如中文包的名称为:zh-CN,英文包的名称为:en-US.我们在工程中新建一个strings文件夹,在该文件夹下再新建zh-CN和en-US文件夹,在两个文件夹下分别建立一个resource.resw资源文件2、资源文件与控件显示之间是通过控件的uid关联的,新建一.
阅读全文
摘要:我们知道,在Metro C++中异步操作都是需要开发者利用task、then这样的方式去实现的,不像C#里通过一个await就会确保当前的异步执行完才会执行下一句。最近在文件保存、将一文件内容写入另一文件中经常会遇到线程冲突的问题,如,将文件A的内容写入文件B,再将A删除,这样的操作将会涉及以下几个步骤:(1)打开B文件,通过文件流初始化DataWriter对象(2)打开A文件,通过文件流初始化DataReader对象(3)通过DataReader对象加载文件A的内容(4)通过DataWriter将内容写入(5)DataWriter保存(6)DataWriter刷新以上每一步都必须一环套一环.
阅读全文
摘要:SemanticZoom是一种语义缩放控件,可以在两个相关视图之间切换:例如ZoomOutView视图显示标题信息,而ZoomInView视图显示详细信息。先来看看它的简单使用,以下示例就是简单地实现开头字母与字母对应单词视图间的切换。Xaml代码:<SemanticZoomx:Name="sezo"ViewChangeStarted="sezo_ViewChangeStarted_1"ViewChangeCompleted="sezo_ViewChangeCompleted_1"><SemanticZoom.Zoo
阅读全文
摘要:BackgroundTaskandLockScreenLockScreen锁屏,我们在使用电脑时经常会锁屏,当我们锁屏时,我们也可以看到一些消息,如未读邮件数、某聊天软件的新消息数等,这就是BackgroundTask与LockScreen之 间的共同实现了~一般LockScreen的信息包括以下几部分:(1) 日期与时间(2) 网络状态(3)电池量这是最基本的几部分,当然还有系统自动设置的锁屏应用,如邮箱、日历、信息等,那我们自己创建的应用如何实现呢?在这之前,先了解LockScreen的基本内容~ 1、 什么情况下需要将应用程序设置为锁屏应用? 锁屏应用一般用于向用户报告重要或有意...
阅读全文
摘要:后台任务即是当应用程序处于挂起状态时,不会影响由于程序持起而带来的某些滞后而执行的一些后台操作,如下载文件、最新信息的推送等。当然,也应尽量减少一些没有必要的后台操作,保证电池的寿命。后台任务处理一般用于以下几种情况:1、消息推送2、播放背景音乐3、文件传输4、共享文件后台任务中一般经常会使用以下一些类和方法:1、BackgroundTaskBuilder 系统注册后台任务类2、BackgroundTaskRegistration BackgroundTaskBuilder.Register()注册后台任务3、SystemTrigger 一个后台任务必须有一个明确的Trigger才执行后台任务
阅读全文
摘要:我们知道,在WinRT中很多接口都是异步的,如StorageFile、MediaCapture等。它们都是以“Async”结尾。那使用异步编程有什么好处呢?估计大家都知道,当我们执行一个函数需要花费数秒钟,若使用同步方法,则会阻止UI线程,应用将不会响应用户操作,体验性将会非常糟糕。而使用异步编程,应用在等待完成时可以继续运行并响应UI。 在WinRT中,每种语言都有其异步编程的模式: JavaScript : 承诺对象,then函数 C#: 将来对象,await运算符 VB: 将来对象,await运算符 Visual C++: task类,.then方法 WinRT 异步编程(C...
阅读全文
摘要:NFC(Near Field Commuciation),近距离无线通讯技术,是一种短距离的高频无线通讯技术。那不禁想到它与Bluetooth蓝牙有什么区别呢?在网上查询了一下,区别大概分为以下几点:(1)传输距离 NFC的传输距离一般为10cm,而Bluetooth的传输距离可以达到10米(2)配置 NFC不需要手动设置匹配,直接将两部设备碰触一下即可;Bluetooth需要单独设置和匹配(3)适用场合 NFC的适用场景比较多,如支付、打卡、刷卡等;Bluetooth的适用场景就比较局限NFC对应的WinRT API--Windows.Networking.ProximityPeerFind
阅读全文
摘要:刚才做Win8 Metro app时突然想到前段时间一直很纠结的程序生命周期问题,不知在哪边实现墓碑机制。想到现在在RP版本可能会有改进,经过一番测试,结论如下:RP版本自动实现了墓碑机制,在关闭程序(窗口拉下或ALT+F4)后10~15秒左右,会执行OnSuspend事件。测试程序如下:page1中通过点击按钮跳转到Page2:Window.Current.Content=newTomestonPage();Window.Current.Activate();Page2中显示默认的TextBlock,点击按钮修改TextBlock值<ButtonContent="Button
阅读全文
摘要:这段时间在做一个通过从网络上抓取的.map文件及区域图片,进行相应的加载定位,并将导航路径输出为.KML格式,以便下次加载显示上次路径。用过Google Earth的应该知道这两种文件格式。.map文件解析该文件不是XML文件格式,但却有固有的输出顺序,我只需按固定的顺序截取我要的信息即可,当然我这里有的最笨的方法,字符行的形式进行截取的,这个方法通用性太低,但我实在不知用哪种方式,若有知晓的,还忘告知~FileOpenPickerfilepicker=newFileOpenPicker();filepicker.FileTypeFilter.Add(".map");fil
阅读全文
摘要:今天在做项目时,意识到Win8 Meto App也有“墓碑”这个概念。从以下场景可以看出:从首页登录页面登录,进行列表页面,此时按Win键返加桌面开启另外一个应用程序,当我再次返回我第一个页面时,却显示的是登录页面,这与想象的场景是不相符合的,做过Windows Phonen7的同胞应该都知道,在wp7 7.0的时是有“墓碑”的机制的,与以上场景完全类似。 不得不先学习一下Windows 8应用程序的生命周期啦,参照http://blogs.msdn.com/b/windowsappdev_cn/archive/2012/04/16/managing-app-lifecycle.aspx的博文
阅读全文
摘要:在Win8 Metro App中,集合项的显示大多基于ListView\ListBox\GridView三个控件实现。 今天就用分别试用一下哈~ 首先看一下,官方对这三个控件的定义 ListBox: Contains a list of selectable items.(包含可选项目的列表) ListView: Represents a control that displays a list of data items.(展现数据项列表显示的控件) GridView: Represents a specialized ordered list view.(展现特殊排序的列表视图) 三个控.
阅读全文
摘要:图片显示 图片的显示应该都非常熟悉,场景很多,我先把我想的三个列举一下: 场景一: 从本地图片库选择图片进行显示: async private void LoadPictureByPicker() { FileOpenPicker fileOpen = new FileOpenPicker() { FileTy...
阅读全文
摘要:WinRT中Notification有三种类型: Badge:徽章、标记的推送更新,主要对于磁砖进行通知 Toast:土司推送,一般是程序运行时通知 Tile:磁砖推送,自然就是程序处理休眠状态时的通知 注意:这里有消息内容都是以XML内容模板发送的 先研究下磁砖的推送Badge和Tile Badge 了解一下有哪些方法 BadgeNotification(XmlDocument content...
阅读全文
摘要:瓷砖,即桌面显示的Tile,它的创建和生命周期都可以由用户自由创建并可以直接访问一个应用程序,还可以为信息的及时推送带来很多的方便。在Windows 8中,由SecondaryTile对象负责。 首先了解一下它的属性: Arguments:它是显示在桌面Tile上程序定制的一些信息,当通过Tile激活一个APP时,可以用该值作一些处理 BackgroundColor:Tile的背景颜色 DisplayName:类似提示信息,当用户移到该Tile时,这个信息会显示 ForegroundText:字体颜色,只有Dark和Light两种 Logo:Logo图标,当创建一个方形的瓷砖中使用的标志形象.
阅读全文
摘要:今天在Stream与IrandomAccessStream之间转换时,感觉很纠结,所以干脆先把想到的一些场景都罗列了一下,希望下次再用的时候就不用这么毛手毛脚的了。。。 Stream 转IRandomAccessStream 方法一:byte[] bytes = StreamToBytes(stream);InMemoryRandomAccessStream memoryStream = new InMemoryRandomAccessStream();DataWriter datawriter = new DataWriter(memoryStream.GetOutputStreamAt(0
阅读全文
摘要:Windows.Device.Input接口提供了识别可用的输入设备并获得这些设备的信息 KeyboardCapabilities 用于判断当前是否连接了键盘设备 其属性KeyboardPresent进行判断,当为0时表示未连接,不为0时表示已连接 Windows.Devices.Input.KeyboardCapabilities KeyboardCapabilities = new Windows.Devices.Input.KeyboardCapabilities();string status = string.Format("There is {0} keyboard pr
阅读全文
摘要:WinRT中的设备类库中包含多种设备信息,如Sensor重力加速计,Location位置信息,Bluetooth蓝牙,Sms信息收发,下面看看各种使用方式: Sensor重力加速器 Accelerormeter重力加速计对象,通过该对象可以获取重力加速X\Y\Z的值 首先定义该对象 Accelerormeter _accelerometer = Accelerometer.GetDefault(); 接下来通过ReadingChanged事件去跟踪X\Y\Z值,Shaken晃动事件去作一些逻辑处理 注册ReadingChanged事件 _accelerometer.ReadingChanged
阅读全文
摘要:Windows 8 Metro Style App中文件操作都包含在Windows.Storage命名空间中,其中包括StorageFolder,StorageFile,FileIO等类库。文件对象用StorageFile实现,文件头用StorageFolder实现,下面看下具体的用法及各类库下的属性他方法。创建文件StorageFolder storageFolder=KnownFolders.DocumentsLibrary; StorageFile storageFile=await storageFolder.CreateFileAsync("sample.txt"
阅读全文