之前一直用c c++开发,但作为一个微软控,最近对Windows phone7/8比较感兴趣,打算对自己的血泪学习之路做个直播,会有遇到的问题及解决思路,也许是你想要的,go!
开发语言C#
没什么好说的,针对Windows phone 8考虑会使用C++/CX。
开发工具
也没什么好说的,Win8+VS2012
心理状态
这个重点说下,非常不自信,一直不敢开始Code,可能觉得突然要去大海游泳了,带些什么准备些什么呢,没有概念,所以一直踏步中。好在下定决心,从一个音乐播放器开始了,现在想想这个踏步时间太久了,建议不要超过2天。
有了需求,紧接着就要从哪些模块开始了,界面?网络?框架?得了,界面吧,Let‘s go
本文链接
Ajax在Web应用中使用得越来越频繁。在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击该按钮产生多个并发Ajax请求);调用完成后,图片消失,当前页面运行重新编辑。以下图为例,页面中通过一个Load链接以Ajax请求的方式加载数据(左)。当用户点击该链接之后,Ajax请求开始,GIF图片显示“Loading“状态,同时当前页面被“罩住”防止用户继续点击Load按钮(中);Ajax请求完成被返回响应的结果,结果被呈现出来的同时,GIF图片和“遮罩”同时消失(右)。
在这里我同样以ASP.NET MVC应用为例,提供一种简单的实现方式。我们GIF图片和作为遮罩的<div>定义在布局文件中,并为它们定制了相应的CSS。其中GIF和遮罩<div>的z-index分别设置为2000和1000(这个任意,只要能够让遮罩的<div>遮住当前页面,GIF图片显示在最上层即可)。后者通过设置position、top、bottom、left和right是它可以遮住整个页面,并且将其背景设置为黑色。
在Windows 8开发中另外一个非常好的工具:文件选择器。可以从用户机器上获取一个或者多个文件。最后我也会介绍一下如何在用户机器上选择一个文件夹。
1. 更新package.appxmanifest,我们与用户系统进行交互的所有机制,首先都需要更新package.appxmanifest文件。在本文,我们要进行文件的打开和保存,所以所以需要添加相应的声明。
1)针对文件打开选择器,需要添加如下内容:
如上图,有两个选择:
支持任何文件类型:选择这个的话,你的程序就被声明为可以访问任意类型的文件。
支持文件类型:在这里指定你想要打开的文件类型,例如你只想让程序打开Excel文件,那么可以在这里输入“.xls”。
2)文件保存选择器的设置也是类似的。如下图:
2. 从用户机器上获取一个文件
1)选择一个或者多个文件(FileOpenPicker)
本文创建从用户机器上选择文件,首先是选择一个文件,然后是多个文件,接着是选择指定某种文件类型(如.png)的多个文件。从用户机器上选择一个文件,需要从FileOpenPicker对象开始。这个对象会给用户打开一个文件打开选择器对话框,帮助用户选择一个或者多个文件,然后返回给我们。它有许多选项,我这里会进行介绍。下面是选择指定文件类型的一个文件的相关代码:
private async void Button_Click(object sender, RoutedEventArgs e)
{
FileOpenPicker picker = newFileOpenPicker();
picker.ViewMode =PickerViewMode.Thumbnail; //设置文件的现实方式,这里选择的是图标
picker.SuggestedStartLocation =PickerLocationId.PicturesLibrary; //设置打开时的默认路径,这里选择的是图片库
picker.FileTypeFilter.Add(".jpg"); //添加可选择的文件类型,这个必须要设置
picker.FileTypeFilter.Add(".jpeg");
picker.FileTypeFilter.Add(".png");
IReadOnlyList<StorageFile> files =await picker.PickMultipleFilesAsync(); //选择打开多个文件
// StorageFile file = await picker.PickSingleFileAsync(); //只能选择一个文件
if (files !=