大家好,我又悄咪咪的来了,在上一篇的Xamarin文章中简单介绍了Xamarin的安装过程,妈蛋没想到很多小朋友很感激我,让他们成功的安装了Xamarin,然后。。。。。。成功的显示了经典的两个单词(别问我那两个经典的单词是什么,我用周易进行了推断,大概是“Hello world!”,233333333,我太屌了!),对了这里再补充一个,貌似微软的模拟器不能用,我用的是真机进行调试。当然相信大家这段时间在园子里或者其他地方找到了许多的Xamarin的学习之道,在上一篇的文章中张善友大神也希望能从Android和IOS的相关知识学起,但是这条入门之路我思量了一下并不适合我,因为相比来说,我更熟悉XAML,我最初买的是刘铁猛的《深入浅出WPF》,这本书只有300来页,用了一个月的时间看完了,然后找了一个相关的工作做WPF的客户端开发,在此期间买了林政的《深入浅出windows phone 8.1 应用开发》给公司开发了半个WinPhone APP(开发完了没上商店,我想很多人也有同样WP开发的经历),后来也做了Silverlight的相关的开发工作,所以呢(这个转折有点大),我可以肯定的告诉大家熟悉WPF或者Silverlight对你学习Xamarin.Forms是有很大的帮助的,当然你熟悉WP的开发也不错,以前我不知道Android的Activity(其他的三个组件没细看),最近我就看了下这个,其实就是传说中的页面周期(妈蛋,我都不知道为什么要起个名字叫Activity,外行人表示懵逼)。好了,废话就哔哔这么多,还是写点什么东西,让大神们来鄙视鄙视。。。。。。顺便提高自己!最后呢,我想说的是:好吧,我承认了解Android的一些基础知识是很有帮助的,大家多少还是了解下,不说精通至少得知道那是什么,干什么的,在项目中看到了不会懵逼。

  从哪里开始呢???嗯,我们先新建一个Forms页面吧,什么?你不知道怎么建,好吧,骚年,你赢了,我们一步一步的来。

  新建一个Xamarin.Forms的项目(不知道?兄弟你只有看上一篇了),然后再可移植的项目上点击右键选择添加-->新建项,然后在Cross-Platform中选择Forms Xaml Page(名字取得很随意,大家要淡定),如下:

  

  

  添加完成后,双击打开

  

  如上图,一个完整的<xxxx></xxxx>或者<xxxx />就是一个标签,借用刘铁猛刘大哥的一句话为大家简单说下什么XAML:XAML是一种声明式语言,当你看到一个标签,就意味着声明了一个对象,对象之间的层级关系要么并列、要么包含,全都体现在标签的关系上。用上图的举例就是一个ContentPage对象包含了一个Label对象。

  现在我们来了解几个东西(其实都是命名空间),第一个是xmlns,如果你知道WPF或者Silverlight的话就知道这个的作用等同于using,唯一的区别在于xmlns必须要一个映射名

  如:xmlns:映射名=“xxxx.xxxx.xxxx.....”,就相当于C#中的using 映射名=xxxx.xxxx.xxxx....

  

  现在我们说说xmlns="http://xamarin.com/schemas/2014/forms"这个是什么意思,上头我们才说了xmlns必须有个映射名,为什么这个没有!!!!????这个呢是Xamarin.Forms的核心命名空间,它包含了构建Xamarin.Forms的用户界面的大部分控件类,他没有使用映射名,所以她也就是页面的默认命名空间,好吧,文字描述不是强项,简单的说,不要映射名的被这个给占用了,所以其他的都必须用映射名。当然你也可以在这个的上面加一个映射名像这样:

  

  如果我上面描述的不是很给力,你看这个应该也能了解一点点了撒,如果不了解也没关系,毕竟XAML的命名空间写书的话是可以写一章来进行讲解的,这里呢都是简单的说一下。

  接着说,xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"这个就是XAML的命名空间,包含XAML的使用特性,简单描述,举个例子,我们新建一个记事本,保存的时候都可以选择UTF-8,还是Union等编码方式,这个的作用就相当于这个编码方式,再简单点就是这个XAML的符合微软2009的XAML规范,好吧,我学艺不精,感觉总是不能描述的太清楚,还是看图吧

  

  好吧,前两个就说到这里,希望对大家有帮助,如果还比较模糊,不怪你,怪我,你也可以在看看上面的两张图,看下w和h写的地方再理解理解。

  继续x:Class="FormsTest01.From_01",这个我就真的简单说了,x:Class="xxxx.xxxx"就是告诉我们这个XAML要与哪个类合并

  

  命名空间就说到这儿。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

  

  如果你想学习Xamarin.Forms,希望你能找书,找博客等等去系统的学习下XAML,这是基础,你必须得会,不然没得谈,还有MVVM。。。用四川话讲就是XAML相关的那一啪啦。

Xamarin.Forms学习之XAML命名空间的更多相关文章

  1. Xamarin.Forms学习之Platform-specific API和文件操作

    这篇文章的分享原由是由于上篇关于Properties的保存不了,调用SavePropertiesAsync()方法也不行,所以我希望通过操作文件的方式保存我的需要的数据,然后我看了一下电子书中的第二十 ...

  2. Xamarin.Forms 学习系列之底部tab

    App中一般都会有一个底部tab,用于切换不同的功能,在Xamarin中应该制作底部tab了,需要把Android的TabbedPage做一次渲染,IOS的则不用,接下来说下详细步骤: 1.在共享项目 ...

  3. Xamarin.Forms学习之位图(二)

    上篇文章分享了如何加载网络图片和PCL中的图片,所以今天继续分享关于如何加载平台的内嵌图片,在这之前说一下上篇文章开头的一个问题:为什么不能加载UWP项目,这是因为我升级了UWP的SDK,而Xamar ...

  4. Xamarin.Forms学习之Page Navigation(一)

    在最初接触Xamarin.Forms的时候,我是跟着Xamarin官方的名为“learning-xamarin-ebook”的pdf文档进行学习的,我在成功运行Hello world程序之后,我开始跟 ...

  5. Xamarin.Forms学习之初

    微软的Build 2016结束的有段时间了,对于一个简单的小屌丝程序员--我来说,关注最大的无疑是Xamarin的免费(开源什么的让大神们上吧),内心激动啊.大会结束的周末我就迫不及待的安装了,然后. ...

  6. Xamarin.Forms学习系列之Android集成极光推送

    一般App都会有消息推送的功能,如果是原生安卓或者IOS集成消息推送很容易,各大推送平台都有相关的Sample,但是关于Xamarin.Forms的消息推送集成的资料非常少,下面就说下Xamarin. ...

  7. Xamarin.Forms学习系列之Syncfusion 制作图形报表

    Syncfusion是一家微软生态下的第三方组件/控件供应商,除了用于HTML5和JavaScript的控件外,他们产品还涉及如下领域: WEB ASP.NET MVC ASP.NET WebForm ...

  8. Xamarin.Forms 学习系列之优秀UI收集

    1.各种优秀UI例子 https://github.com/jsuarezruiz/xamarin-forms-goodlooking-UI 输入框例子 https://github.com/enis ...

  9. Xamarin.Forms学习系列之SQLite

    在App中我们通常不会实时获取服务器数据,会在用户手机中保存历史数据,这个时候就需要用到数据库SQLite,由于微软的封装,在Xamarin中操作SQLite非常简单,类似EF的操作. 1.我们需要在 ...

随机推荐

  1. 应用程序池和应用程序域的区别(Difference between application pool and application domain)

    来自StackOverFlow:  http://stackoverflow.com/questions/8486335/difference-between-an-application-domai ...

  2. 浅谈Android移动开发程序员的职业发展之路

    现在几乎每个it公司都在开发移动产品,我最早知道Android还是在09年成都某学院上大学的时候,从新闻上知道有这么一家公司,创始人安迪·鲁宾很有名,但安卓到底是做什么的,我并没有关注. 到2010年 ...

  3. 牛散NO.3:MACD放之四海 假作真时真亦假

    大宗商品日线“异曲同工夺命勾魂枪” 话说有实战意义的技术在任何资本市场里都能产生出神奇的效果.不能说放之四海皆准,但至少起到触类旁通的“牵强”吧.大宗商品特别是在国际市场交易的大宗 商品由于是来自各方 ...

  4. LeetCode之小孩分糖果

    给定一群站好队的小孩而且按某项分值排名(姑且如果为年龄吧),年龄大的要比他身边年龄小的拿的糖要多.求怎么分配糖果使得分配的糖果数最少. 用一个数组从左到右再从右到左的遍历,向前遍历时若右边的比左边的大 ...

  5. js 判断是否为数组

    http://www.jb51.net/article/79939.htm Object.prototype.toString.call([1,2,3,4]) == '[object Array]'

  6. [原创]Linux实现服务延迟启动

    在开机启动服务的时候,服务之间有依赖关系,必须在某个服务完全启动后才能启动其他的服务.在这种情况下,就需要用到服务延迟启动的功能.在开机时,延迟几分钟再启动.具体步骤如下:1.写一个实现延时启动的脚本 ...

  7. jq时间戳转化为可视化时间

    //2016年5月21日 23:12:07 function getDateTimeToDate(dt){ var dateTime = new Date(dt); var date = dateTi ...

  8. Mysql 没有nvl()函数,却有一个类似功能的函数ifnull()

    今天自己无聊写了看了一个查询需求随手写了一个sql语句,发现竟然不能运行,MySQL报[Err] 1305 - FUNCTION ceshi.nvl does not exist的错.才意识到自己写的 ...

  9. Mysql查询缓存碎片、缓存命中率及Nagios监控

    Mysql 的优化方案,在互联网上可以查找到非常多资料,今天对Mysql缓存碎片和命中率作了详细了解,个人作了简单整理. 一.Mysql查询缓存碎片和缓存命中率. mysql> SHOW STA ...

  10. hdu 2217 Visit

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2217 题目解释:起始位置在原点,给你固定的时间,让你左右跑,求在规定的时间内你最多能跑多少个点: 解决 ...