一起学习win8应用2-通过弹出框学习下解决方案的各个文件

时间:13-01-21 栏目:win8应用 作者:zongyan86 评论:0 点击: 3,164 次

在《一起学习win8应用1》中,我们做了一个最基础的“hello world!"程序。(通过Button的Click事件,让TextBlock来显示TextBox的内容)。大概了解了下,win8应用程序的一个开发流程。昨天,一朋友也想做个hello world,但是,他只是想用最简单的方式,弹出个提醒框。结果,把他给惹急了。说是找不到MessBox了,好不容易找到了个MessageDialog,折腾了老半天就不会用。我笑了笑,就说那今天我就写个教程吧!顺便学习下,win8解决方案的一些文件。

第一,我们打开vs2012,点击文件-新建-空白项目;

我们还是先大概看看,各个文件是做什么用的.已用红字标明,具体以后用到会慢慢细说。

第二,在设计视图拉两个控件:一个Button,一个TextBlock控件,并设置相应的属性。如图

这边值得注意的是,TextBlock中的Style这个属性。它引用的是静态资源。其实也就是我们解决方案里面那个Common文件夹里的那个standardStyles.xaml里的样式。

这时我们可以再看下解决方案里面的App.xaml文件了。

哦,是不是有恍然大悟的感觉,原来那个标准的全局样式,是在app中加载的。

那我们如何通过属性,为各种控件添加和修改全局样式属性呢?

我们“选择”某个控件,点击“属性”面板,在“杂项”找到Style,点击最右边的小正方形,会弹出一个框,点击“本地资源”,进行选择。ok,我们就可以选择我们在StandardStyles中定义的样式了。编辑,则是点击对应的“编辑资源”或“转换为新资源” 按钮。

第三,我们给按钮添加点击事件;

其实,这样一个最简单的弹出框就做好了。可能很多人,会觉得疑惑,包括我那个瞎搞了半天都搞不定弹出框的朋友。我想主要是因为这边出现了async跟await这两个关键字,可能,我是说可能,有些同学还搞不清var这个关键字。如果是这样的话,那很遗憾的告诉这部分人,要赶紧补功课了。fw4.5都出来了,何必一直停留在2.0的时代呢?

我们先来看看运行结果:

现在弹出框我们可以采用这种方式,当然,还有更好的。在这边我们看到了MessageDialog这个类,当然,别忘了要引用命名空间Windows.UI.Popups

MessageDialog有两个构造函数,分别是只传内容和传了内容跟标题的,并且它提供了title和comment属性,我们可以让弹出框的标题跟内容重新赋值,就像例子那样。

这些是不是都跟MessBox没啥两样。

但MessageDialog没有像MessBox的show方法,取而代之的是showAsync方法。

// 摘要:
//     开始显示对话框的异步操作。
// 返回结果:
//     表示异步操作的对象。有关异步模式的更多信息,请参见 Windows 运行时中的异步编程。
public IAsyncOperation<IUICommand> ShowAsync();

这也是为什么我们要用await跟async关键字的原因了。异步编程对于性能上的提高还是有很大用处的,这边大家可以先自己查点资料。

值得我们注意的是:await关键字在方法体中使用,您千万别忘了在方法声明中使用下async。

很多人这样写,所以,一直报错。(包括我那个朋友)这边是需要在void前面加个async的,而且async也只能在void方法中使用。

默认的弹出框是会带有一个关闭按钮的,当然,我们也可以通过代码来自定义按钮。

这边我们用Commands.Add来添加“确定”和“取消”按钮,并进行事件的绑定。我们并对按钮进行设置默认命令索引。

“确定”和“取消”按钮,既然是事件,我们就可以采用lamda表达式来进行操作。

现在我们来看看最后的运行结果:

 
web技术分享



声明: 本文由( zongyan86 )原创编译,转载请保留链接: 一起学习win8应用2-通过弹出框学习下解决方案的各个文件

关注我们