zoukankan      html  css  js  c++  java
  • 一起学习win8应用2通过弹出框学习下解决方案的各个文件

    web技术分享网 欢迎你!

    在《一起学习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表达式来进行操作。

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

  • 相关阅读:
    4级搭建类403-Oracle 12cR2 DG 搭建(WinServer 2019 一对一 LGWR ASYNC CDB模式)
    4级搭建类402-Oracle 11gR2 DG搭建(WinServer 2019 一对一 LGWR ASYNC)
    12c OCP考试专项 [1z0-071]-Q23: alias别名的使用(2020.06.21)
    12c OCP考试专项 [1z0-071]-Q22: 小计合计(2020.06.18)
    12c OCP考试专项 [1z0-071]-Q21: 日期返回格式(2020.06.18)
    12c OCP考试专项 [1z0-071]-Q20: 集合操作符(2020.06.18)
    12c OCP考试专项 [1z0-071]-Q19: 升序降序/最大值排序(2020.06.18)
    12c OCP考试专项 [1z0-071]-Q18: IS NOT NULL 查询空值及 DISTINCT 去重用法(2020.06.18)
    12c OCP考试专项 [1z0-071]-Q17: 对象权限的授权(2020.06.18)
    12c OCP考试专项 [1z0-071]-Q16: 对象权限的授权(2020.06.18)
  • 原文地址:https://www.cnblogs.com/youqu/p/2744881.html
Copyright © 2011-2022 走看看