关于详细的基本功就先说这么多。后面遇到再补充说明,前面说的都是一些代码和原理方面的东西。接下来说的会有界面和代码结合,会有成就感,由于能真正的做出东西来了。


Windows移动开发包含Windows Store和Windows Phone,Windows Store程序主要针对的是Surface,Windows Phone主要是Win8 Metro手机应用,这两个产品的开发模式基本类似。和Silverlight非常像,仅仅是Silverlight是执行在浏览器中,假设有Silverlight基础的Asp.Net程序猿去学习Windows移动开发时非常easy入门的。

开发Windows移动程序,建议使用的开发环境是,操作系统:Windows 8.x。IDE:Visual Studio 2012(或者更高版本号,简称VS2012)。数据库:Sql Lite。也经常使用XML或者Json文件存储少量信息。


安装VS2012的时候会提示用户安装Blend。Blend在移动开发中的地位好比站点开发中的Dreamweaver(简称DW),站点开发的前端project师使用DW设计页面。自己主动生成后台代码,Blend是图形化设计页面。通过拖拽控件能够自己主动生成前端UI页面。能够和VS2012共享一个解决方式。

例如以下图所看到的:


通过上图能够看出来,设计页面和Photoshop非常像,操作起来非常方便,可是这是给前端UI人员使用的。作为程序开发者,前期尽量少用这个开发工具,即使用也要了解透前端特定效果的后端代码实现原理。深刻了解代码原理才干高速准确的解决和优化问题。所以这个工具我也不多介绍了,一看就会用。

刚才说了Blend能够和VS共享一个解决方式。那么我们就通过VS打开刚才Blend创建的解决方式。例如以下图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamhxMDExMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

      首先解释一下XAML代码。Page相当于Winform程序中的窗口。在Windows移动开发中都是用Page,Grid是一种布局方式,Grid中能够放各种控件,Grid布局是Windows移动开发中最经常使用的一种布局方式。当然Grid中还能够放Grid,很的灵活 。


看到上面的代码,感觉XAML代码非常像站点开发中的HTML代码。事实上XAML也是基于XML文件的,使用起来非常的强大,微软在Silverlight、WPF、Windows Store和Windows Phone开发中都採用XAML作为前端页面引擎,能够看出来XAML已经流行于站点、桌面以及移动端程序,这必定是以后的开发趋势,另外XAML还融合了各种样式的嵌套使用,不想站点开发中把样式技术独立为CSS,只是XAML也会把程序的样式单独封装到文件里便于使用。思想都是一样的。


在VS中也能够拖拽XAML控件。常见的XAML控件有TextBox、TextBlock、Button、Image、GridView、ListView、FlipView等。以后都会具体介绍这些控件的用法。今天就先认识一下XAML的代码以及基于XAML的开发模式,我们下期见。

Windows移动开发(五)——初始XAML的更多相关文章

  1. Windows Phone开发-开发环境和结构

    Windows Phone 7.1的开发工具发布了,一直对WP7很关注,现在终于可以开始学习了.其实09年就学习过silverlight,看过3的SDK文档,当时因为工作,断断续续也没有坚持下来,所以 ...

  2. Kinect for Windows SDK开发入门(15):进阶指引 下

    Kinect for Windows SDK开发入门(十五):进阶指引 下 上一篇文章介绍了Kinect for Windows SDK进阶开发需要了解的一些内容,包括影像处理Coding4Fun K ...

  3. Windows Phone开发(37):动画之ColorAnimation

    原文:Windows Phone开发(37):动画之ColorAnimation 上一节中我们讨论了用double值进行动画处理,我们知道动画是有很多种的,今天,我向大家继续介绍一个动画类--Colo ...

  4. Windows Phone开发(16):样式和控件模板

    原文:Windows Phone开发(16):样式和控件模板 在前面资源一文中也提过样式,样式就如同我们做HTML页排版时常用到的CSS样式表,它是对于特定娄型的可视化元素,应该可以直接说是针对控件的 ...

  5. Silverlight for Windows Phone开发系列课程

    Silverlight for Windows Phone开发系列课程(1):Windows Phone平台概况         课程简介:本节开始介绍系列课程的概况,包括课程内容,先决条件,学习目的 ...

  6. windows原生开发之界面疑云

        windows桌面开发,界面始终是最大的困惑.我们对前端工具的要求,其实只有窗体设计器.消息映射,过分点的话自适应屏幕.模型绑定.能够免于手工书写,其实这个问题并不复杂,但VS不实现.QT语法 ...

  7. Windows驱动开发(中间层)

    Windows驱动开发 一.前言 依据<Windows内核安全与驱动开发>及MSDN等网络质料进行学习开发. 二.初步环境 1.下载安装WDK7.1.0(WinDDK\7600.16385 ...

  8. Windows Phone开发工具初体验【转载】

    Windows Phone开发工具在MIX 2010上火热登场了.Windows Mobile开发者们压抑许久的热情终于爆发出来,对于Windows Phone的华丽转身,开发者们褒贬不一,有人对Si ...

  9. Windows Phone开发(48):不可或缺的本地数据库

    原文:Windows Phone开发(48):不可或缺的本地数据库 也许WP7的时候,是想着让云服务露两手,故似乎并不支持本地数据库,所有数据都上传上"云"数据库中.不过呢,在SD ...

随机推荐

  1. HTTP协议头部字段释义

    1. Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type. 2. Accept-Charset: 浏览器申明自 ...

  2. java 多线程并发系列之 生产者消费者模式的两种实现

    在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题.该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度. 为什么要使用生产者和消费者模式 在线程世界里,生产者就是生产数据 ...

  3. ubuntu上Hadoop三种运行模式的部署

    Hadoop集群支持三种运行模式:单机模式.伪分布式模式,全分布式模式,下面介绍下在Ubuntu下的部署 (1)单机模式 默认情况下,Hadoop被配置成一个以非分布式模式运行的独立JAVA进程,适合 ...

  4. Leetcode0133--Clone Graph 克隆无向图

    [转载请注明]:https://www.cnblogs.com/igoslly/p/9699791.html 一.题目 二.题目分析 给出一个无向图,其中保证每点之间均有连接,给出原图中的一个点 no ...

  5. JS——动态添加事件和移除事件(有待补充...)

    动态的添加事件:利用 attachEvent 和 addEventListener IE 支持 attachEvent: obj.attachEvent("onclick", Fo ...

  6. [Windows Server 2008] 服务器安全加固

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:服务器安全加固 ...

  7. 【译】x86程序员手册01

    Intel 80386 Reference Programmer's Manual 80386程序员参考手册 Chapter 1 -- Introduction to the 80386 第1章 - ...

  8. Zabbix 客户端安装教程(第二篇)

    Zabbix 客户端安装教程 blog地址:http://www.cnblogs.com/caoguo [root@localhost ~]# yum install -y gcc make [roo ...

  9. Discuz! X3.1云平台QQ互联的Unknown column 'conuintoken' in 'field list' 解决办法

    http://www.discuz.net/thread-3482497-1-1.html 由于程序安装默认数据表的结构和QQ互联数据表结构不同,安装Discuz! X3.1和升级Discuz! X3 ...

  10. Python 之动态添加属性以及方法

    import types class Person(object): def __init__(self, newName, newAge): self.name = newName self.age ...