摘要: 不知道大家有没有“谈Socket色变”的经历?就像我一位朋友所说的,Socket这家伙啊,不得已而用之。哈,Socket真的那么恐怖吗?其实这话一点也不假,Socket有时候真的不太好操控,也不好维护,但不管怎么样,我们还是要面对它的,没准Socket是一位大美女哦。关于Socket的前世今生就不用我详述了,关于她的历史,已经不少人仁志士为她立传写著了,像我们国内的百度百科、互动百科等;全球著名的如维基百科之属。而且,能加入WP开发的学习行列的,我想各位对.NET的其它技术肯定是有一定基础的。我也相信,各位同仁过去一定也写过与Socket打交道的程序。那么,WP中的Socket又将如何呢?前提 阅读全文
posted @ 2012-07-24 20:56 songtzu 阅读(312) 评论(0) 推荐(0)
摘要: 在进行WP开发之前,与其它开发技术一样,我们需要简单了解一个WP应用序的生命周期,我们不一定要深入了解,但至少要知道在应用程序生命周期内的每一阶段,我们应当做什么,不推荐哪些操作等,这也是为了让我们开发出更高性能,更优秀的应用程序打下坚实的基础。下图是官方给出的WP应用程序执行模型图。在上图中,我们要注意以下四个事件:1、Launching 事件。说白了,就是应用程序刚启动时触发的事件,由于这个事件的一点特殊性,尽量不要在该事件处理程序中做大量的操作,比如比较耗时间的作业,为什么呢?你想想,如果你的某个操作需要消耗大量时间的话,那么,你肯定会发现,程序启动的速度很慢,这样一来,用户会很不爽,用 阅读全文
posted @ 2012-07-24 20:46 songtzu 阅读(218) 评论(0) 推荐(0)
摘要: 在开如之前,我想更正一个小问题,之前我在第一篇文章中说,Visual Studio Express for Windows Phone的中文版没有简体中文,那是因为我是在英文主页上下载的,语言选择列表中只有一个中文,但是繁体的,后来,我发现Windwos Phone SDK是有简体中文版的,顺便我也给出下载地址。http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=0a373422-6680-46a7-89e1-e9a468a14259可以在线安装,如果你的网速不给力的话,可以下载ISO镜像本地安装。----------- 阅读全文
posted @ 2012-07-24 20:45 songtzu 阅读(220) 评论(0) 推荐(0)
摘要: 为什么叫室内装修呢?呵呵,其实说的是布局,具体些嘛,就是在一个页面中,你如何去摆放你的控件,如何管理它们,你说,像不像我们刚搬进新住所,要“装修”一番?买一套什么样的茶几和杯具(我说的“杯具”指的是原意,不要理解错了),或者沙发什么的,该怎么放,摆在哪里好看,其实,我们做界面设计也是差不多这个道理。相信我们下过象棋就知道,棋盘上有横向的,纵向的很多网格线,而棋子就是参照这些网格线来放置的,对,在WP页面布局中我们把这样的布局称为网格布局,对应的控件为Grid。千万别小看这个Grid控件,它可是非常好用的,而且也比较灵活,对的,当我们创建一个新页面时,VS为我们生生的XAML中,正是使用了Gri 阅读全文
posted @ 2012-07-24 20:45 songtzu 阅读(146) 评论(0) 推荐(0)
摘要: 俺们都知道,智能手机可以通过旋转手机来改变屏幕的显示方向,更多的时候,对于屏幕方向的改变,我们要做出相应的处理,例如,当手机屏幕方向从纵向变为横向时,可能要重新排列页面上的控件以适应显示区域的变化。前面我们讨论过,Silverlight for Windows Phone的页面布局有三个常用的布局控件,那么,当屏幕方向改变后,我们所做的对布局的更改基础上是基于这几个容器进行的操作。本文我将通过三个示例来分别说明。开始之前,先说一下PhoneApplicationPage类的OrientationChanged事件,该事件就是当屏幕的方向改变之后发生,我们从事件参数OrientationChan 阅读全文
posted @ 2012-07-24 20:44 songtzu 阅读(230) 评论(0) 推荐(0)
摘要: 前文用几个例子对导航做了简单介绍,在一般应用中,使用上一篇文章中说到的方法,其实也够用了,不过,为了能够处理一些特殊的情况,有几个小技巧还是有必要了解一下的。一、到底该不该设置“后退”操作?因为手机的硬件层就有一个“回退”按钮,按理说我们不需要在程序中再添加什么回退按钮之类的,不过,还是有必要看看如何手动加入回退功能。1、新建一个WP应用项目。2、除默认的主页外,新建一个页面Page2.xaml。3、在主页上放一个按钮,编写Click事件处理代码,导航到Page2。[csharp]view plaincopyprint?privatevoidbutton1_Click(objectsender 阅读全文
posted @ 2012-07-24 20:43 songtzu 阅读(247) 评论(0) 推荐(0)
摘要: 吹完了页面有关的话题,今天我们来聊一下页面之间是如何导航的,在更多情况下,我们的应用程序不会只有一个页面的,应该会有N个,就像我们做桌面应 用开发那样,我们一个应用程序中可能不止一个窗体(极简单的程序除外),我们要处理窗体之间的切换;同理地,在进行Web开发的时候,我们的Web应用程序可能也不止一个页面,我们要处理页面之间的切换。当然了,在我们的手机应用中,同样需要这种操作,我们称之为“导航”,作为开发者,我们全盘操控页面之间的切换,所以说,我们也当了App的“总舵主”。一、如何进行导航。进行页面导航的一种简单方法就是使用HyperlinkButton控件的NavigateUri属性来指定要导 阅读全文
posted @ 2012-07-24 20:43 songtzu 阅读(217) 评论(0) 推荐(0)
摘要: Windows Phone的控件有几个来源,和传统的桌面应用程序开发或Web开发一样,有默认提供的控件和第三方开者发布的控件。一般而言,如果不是过于复杂的界面布局,使用默认控件就足矣。相比之下,Android SDK中尽管提供了许多可视化控件,但你会发现,实际开发用到的并不多,而且很多控件完全只是摆设,既没有公开相应的操作方法也没有更多可用于开发者自行处理的监听器(这里我习惯翻译为监听器,在安卓里面没有像C#那样使用事件,而是new一个监听器,当然原理是相似的)。除了游戏开外,我们在WP上基本上是使用Silverlight,因此,WP的大部分控件都来自Silverlight(银光)。一、Tex 阅读全文
posted @ 2012-07-24 20:42 songtzu 阅读(178) 评论(0) 推荐(0)
摘要: 按照一般做法,刚学会如何导航,还是不够的,因为要知道,手机里面的每个页面,就如同Web页面一样,是无状态的。啥是无状态?如果我们玩过Web开发就明白了,当你在当前页面输入一些内容,然后退回到前一页面,再前进到该页面,就会发现,之前输入的内容可能会没了。再比如吧,你在页面A中进行了数据绑定,点击按钮后进行查询并把查询结果显示在表格中,然后你点击一个超链接,跳到D页面,然后你再从D页面退回A页面,你会发现,刚才查询的结果就不会显示了。这就是无状态,也就是说,在你导航离开当前页面后,当前页面不会保留任何操作相关的数据。在手机应用程序中同样如此,所以,在导航离开当前页面时保存状态信息,而在用户再次回到 阅读全文
posted @ 2012-07-24 20:42 songtzu 阅读(172) 评论(0) 推荐(0)
摘要: WP控件大部分都可以从Silverlight中继承过来,这里我也只能拿一部分作演示,对于其它控件如何使用,可以参考SDK相关说明以及Silverlight SDK文档。一、RadioButton控件。这是一个单选控件,不用多解释,我们见得多了,N选1,控件是否被用户选中,由IsChecked属性标记。另外,要注意的一点是GroupName属性,它输入一个分组名,这个名由我们自己来取,目的也是为了分组,因为是单选,所以,一个容器中可能有N多个RadioButton控件或都有多组RadioButton控件,因此,组名就发挥了作用,也就是说,同一个组内的只能选一个,比如,有一个组A,A中包含3个Ra 阅读全文
posted @ 2012-07-24 20:41 songtzu 阅读(242) 评论(0) 推荐(0)
摘要: 很多时候,我们对用户的操作或输入做一定程度的限制,以避免发生不必要的异常或错误,因此,对一些特殊的类型,进行输入限制是很有必要的。通改变屏幕键盘的显示模式可以规范和告诉用户, 这里应该输入什么。要做到这些并不复杂,只要用到一个类就足矣—— InputScope,它有一个Names属性,包含InputScopeName列表,而InputScopeName的NameValue是一个枚举值,说到底,显示什么样的屏幕键盘就取决于该枚举值。非常多的内容,至少每个枚举项表示什么,就没有必要一一说明,大家参考SDK文档就可以了。上面是理论部分,是不是这么神呢,下面我们用实践来证明吧。启动你的VS,然后新建一 阅读全文
posted @ 2012-07-24 20:40 songtzu 阅读(156) 评论(0) 推荐(0)
摘要: 对“磁贴”的理解是一点也不抽象的,为什么呢?只要你愿意启动WP系统,无论你是在模拟器中还是在真机中,是的,桌面上那一块块像地板的玩意儿,就是磁贴了。(图:磁贴)在上图中,我们很直观地看到磁贴图块的“真”面目,呵呵,其实很明显,这个设计真的很有个性,老实说,WP刚推出的时候,很多人说它这个那个的,其实这些人只过是起起哄罢了。我是挺喜欢桌面上那一块块的图块的,这也是WP第一次给我留下的深刻印象,毕竟在安卓和IOS上,我们看到的都是传统手机的图标显示方式,而WP总让我觉得很有个性。好的,看完了整体的,我们来看看局部的,好吗?别小看这些正方形的图块,里面可是大有文章的哦。不信?一起去瞧瞧。磁贴的一个图 阅读全文
posted @ 2012-07-24 20:40 songtzu 阅读(236) 评论(0) 推荐(0)
摘要: 英文原文:smashingmagazine 导读:Windows Phone 7 引进了一个全新的内容管理和用户界面,命名为Metro的设计语言和理论。微软这次所看准的市场和用户群也与之前的老一代 Windows 不同(终于转变了):从针对商业和技术用户到普通用户,线上,线下的生活紧密链接的新兴用户。 对话设计人员 我们就不强调设计在手机应用上有多重要了。WP7是个非常不同于其他手机平台的操作系统,虽然现在还在起步阶段,业内对它还是很看好的。设计人员应该走在开发之前对它的平台和用户界面进行了解。其二,微软最终将会把 Metro 引入 Windows 8,打造一致性的手机、电脑界面。Win... 阅读全文
posted @ 2012-07-24 20:39 songtzu 阅读(175) 评论(0) 推荐(0)
摘要: 数据模板,如果你仅仅听到这个名词,你一定很迷惑,什么来的?用来干什么的?不急,亲,今天,我们一起来探索一下吧。用白话文说,数据模板就是用来规范数据的显示方式的,关于模板,估计各位不陌生的,大家应该玩过PPT吧,都做过演示文稿吧,对啊,PPT里面有很多模板的,明白了吧?不明白?那你一定填过表吧,如果报考什么考试的,你肯定会被要求填一些什么报名表之类的,或者说,找过工用吗?是啊,做简历也有简历模板。模板的用法就像做填空题,有了部分规范的内容,然后你按照这个规范,在特定的位置填上恰当的内容,你总不能说把你的姓名填到“性别”那里去吧,这就不符合规范了。好了,废话讲了不少,下面进入正题,你想想,哪些控件 阅读全文
posted @ 2012-07-24 20:38 songtzu 阅读(217) 评论(0) 推荐(0)
摘要: 活字印刷术是我国“四大发明”之一,毕昇在发明活字印刷术之后,他很快发现一个问题,随着要印刷资料的不断增加,要用到的汉字数目越来越多,于是,他必须寻找一种有效的办法去管理那些刻有汉字的立方体(暂且就叫立方体,其实的确是个立方体),所以,他就和助手们一起努力,为这些立方体进行记录,有标识地放好,在印刷过程中用到哪些字,就直接取出来,不用了就放回去,既环保又方便。这就是资源,水、空气、阳光也是资源,煤、铁矿物也是资源,只不过有些可再生,有些不可再生罢了。何为资源?资源就是客观存在的,当我们需要时可以拿来利用的一切可支配或可重新组合的东西,如人力资源、人脉资源等。如果做过网页,应该了解CSS是用来干啥 阅读全文
posted @ 2012-07-24 20:37 songtzu 阅读(222) 评论(0) 推荐(0)
摘要: 在前面资源一文中也提过样式,样式就如同我们做HTML页排版时常用到的CSS样式表,它是对于特定娄型的可视化元素,应该可以直接说是针对控件的一种可重用的属性设置列表,这样对于需要设置相同属性值的同类型的多个控件来讲是大大提高效率,我们不必要为每个控件做重复的动作。下面是一个TextBox的样式示例,我们希望通过引用资源中的样式,使得页面上的所有TextBox控件都具有统一的外观,而且都只能输入数字。[html]view plaincopyprint?<phone:PhoneApplicationPage.Resources><!--不带key的样式,应用于所有TextBlock 阅读全文
posted @ 2012-07-24 20:36 songtzu 阅读(220) 评论(0) 推荐(0)
摘要: 前面在讲述导航的知识,也讲了控件,也讲了资源,样式,模板,相信大家对UI部分的内容应该有了很直观的认识了。那么今天讲什么呢?不知道大家在练习导航的时候是否发现一个问题?当我们向页面传递一个参数的时候,是没问题的,但是,如果我们在XAML中使用这样的URI时,你敢保证它还能正常运行呢? /PageaTest.xaml?name=小强&age=100你发现,嘿,咋回事了?怎么报错了?不知道有没有去思考,为什么呢?好,先问你一句,你学过Web开发吗?或者说,了解HTML吗?如果你了解,好,你已经找到答案了。哈哈,对了,就是编码和转义的问题,“&”符号用在XAML中同样需要转义,但你一 阅读全文
posted @ 2012-07-24 20:35 songtzu 阅读(220) 评论(0) 推荐(0)
摘要: 变换不是一个好理解的概念,不是吓你,它涉及很多有关代数,几何,以及线性代数的知识。怎么?被我的话吓怕了?不用怕,尽管我们未必能够理解这些概念,只要我们知道怎么使用它们就是了。其实,变换就是平面上一种坐标变化,听起来很抽象,但,只要我把它说具体了,你就会觉得不抽象了。相信各位如果玩过Photoshop,或者其它的绘图软件,应该知道什么叫做旋转,什么叫做倾斜,什么叫做平移……是的,这些就是我们今天要聊的变换,好了,现在你是不是可以坐下来喝一杯珍珠奶茶来放松一下呢?哦,对了,珍珠奶茶尽量少喝哦。好,闲话少吹,开始今天的表演。一、TranslateTransform。这个应该算是最好理解了,就是平移嘛 阅读全文
posted @ 2012-07-24 20:34 songtzu 阅读(233) 评论(0) 推荐(0)
摘要: 三维效果也可以叫透视效果,所以,我干脆叫三维透视效果。理论知识少讲,直接用例开场吧,因为这个三维效果其实很简单,比上一节中的变换更省事,不信?一起来做一做练习吧。练习一:把对象沿Y轴旋转45度。默认情况下,旋转中心都是在中心位置上,如Y轴中心。而至于旋转的角度,哪个方向是正值,哪个方向是负值,嘿,你自己动手试一下就知道了,我相信你能理解的,不然,Hello Kitty嘲笑你的。好的,由于是第一个练习,我们先来说说X、Y、Z三个坐标轴到底在哪,X轴不用说了,就横着放的那个了,Y轴呢,当然是竖着的,那Z轴呢?你猜?知道这三个轴是互相垂直的,你会猜的,在哪?在图上看不到?为什么呢?是啊,Z轴正指向你 阅读全文
posted @ 2012-07-24 20:33 songtzu 阅读(197) 评论(0) 推荐(0)
摘要: 前面说的那么多控件都是“静态”的,都是“哑吧”的,今天,你有没有兴趣研究一下,既能“有声有色”又操作简单的控件吗?如果有,请随我来。MediaElement播放多媒体文件。首先,隆重介绍一下MediaElement,为什么要隆重呢?因为它简单,真的,你一定会玩的,但是,MediaElement功能强大,它可以播放音频和视频,只要支持的格式就行了。要设置播放的音频或视频文件,你只需要设置Source属性即可,它其实就是一个URI,如果要播放你项目中的媒体文件,你先要把媒体文件添加到你的项目中,把它的生成操作设置为资源,不用我说了,都会了吧。你一定会问,能播放网络的URI指向的媒体文件吗?呵,你试 阅读全文
posted @ 2012-07-24 20:32 songtzu 阅读(225) 评论(0) 推荐(0)
摘要: 其实我们今天要说的就是一个控件——InkPresenter,这个控件并不是十分强大,没办法和WPF中的InkCanvas相比,估计在实际开发中也很少可能会用到它,不过,我们还是来了解一下吧,毕竟用起来也不难。使用该控件没有什么技术含量,注意一下以下几点就是了:1、必须明确指定InkPresenter的宽度和高度,也就是不能使用自动值和Margin,不然不能收集墨迹,除非里面有子元素;2、要收集墨迹,要设置Clip属性;3、可以使用DrawingAttributes类设置墨迹的大小和颜色。该控件不能像WPF那样自动实现收集墨迹的功能,也就是说只能是我们自己写代码了。[html]view plai 阅读全文
posted @ 2012-07-24 20:31 songtzu 阅读(247) 评论(0) 推荐(0)
摘要: 这两个组件都属于选择器,而且它们也有很多相似的地方,最明显的上一点,它们都是用来选择图片。一、CameraCaptureTask选择器。它用于启动照相机,当你拍下照片后,自动把照的字节流返回给调用方应用程序。前文说过,启动器和选择的使用方法和步骤都是一样的。对于CameraCaptureTask组件也如此,不过注意的一点是,处理Completed事件时一定要记住,尽可能的使用页面类的Dispatcher.BeginInvoke方法,因为异步回调直接访问UI元素是不安全的,极有可能会引发异常,但我不是说绝对。[html]view plaincopyprint?<Grid><Gr 阅读全文
posted @ 2012-07-24 20:30 songtzu 阅读(202) 评论(0) 推荐(0)
摘要: 从今天开发始,我们又开始新的征程,接下来的课程我们要熟悉一下启动器和选择器,其实二者是一样的,没有根本的区别,启动器是有返回结果的,如打开搜索应用程序进行搜索,而选择器是有返回内容的,如选择一张照片。那么,启动器和选择器是啥玩意儿呢?其实我们可以很简单去理解,说白了,就是使用系自带的组件或应用程序。对的,就是这样,我说过,有时候很多概念只是名字上吓人罢了,实际用起来是非常简单的,比如这个启动器和选择器就是了。到底是不是很简单,实践一下就知道了,本系列教程叫“轻松入门”,既然称得上是轻松,痛苦的事情不会叫大家去做,而MS一向注重用户体验,不会让大家痛苦的。先来总结一下,使用启动器和选择器的方法是 阅读全文
posted @ 2012-07-24 20:30 songtzu 阅读(221) 评论(0) 推荐(0)
摘要: 本节我们通过一个简单的发送短信示例来演示一下如果配合使用PhoneNumberChooserTask和SmsComposeTask类。PhoneNumberChooserTask是选择器,它用于从你的电话簿里选择你要发送短信的电话号码;SmsComposeTask就是用来启动发送短信组件并显示发送窗口。注意,这些操作都在用户的操控之中,发送短信一定会显示可视化页面的,而且不会偷偷地在后台发送,因为Windows phone是以用户体验和安全为原则的,后台发送是不允许的,而且发送过程是由用户控制的,你可以选择取消或退出。SmsComposeTask类的To属性就是目标电话号码,Body就是你要发 阅读全文
posted @ 2012-07-24 20:29 songtzu 阅读(234) 评论(0) 推荐(0)
摘要: 启动器与选择器简单的地方在于,它们的使用方法几乎一模一样,从前面几节中,我相信大家基本上都知道如何使用它们了。这里还是哆嗦一下吧,使用启动器和选择器的步骤如下:1、实例化,new一个;2、准备各参数,对相关的属性赋值;3、Show;4、对于启动器,不需要这步,但选择器有返回数据,所以需要处理完成事件。本节再举两例子,启动器和选择器就可以完成了,然后我们下一节开始,探讨新的知识点。例一:媒体播放器。这是一个启动器,用起来更方便。主要属性有:Controls——要显示控制按钮,如暂集,停止等,它是一个带了Flags特性标记的枚举,所以可以多个值合并,如MediaPlaybackControls.P 阅读全文
posted @ 2012-07-24 20:28 songtzu 阅读(250) 评论(0) 推荐(0)
摘要: 从名字上就看出来,这个家伙就是打开浏览并浏览到指定页面。它有两个用途完全一样的属性:Uri属性是System.Uri类型,这是新写进的属性;URL是字符串类型,但如果使用该属性,会发出警告“已过时”,所以建议使用前者。下面这个例子,点击按钮后都是打开WEB浏览器并定位到文本框中输入的地址,但分别用了上面所说的两个属性,当程序运行后,你会发现其效果是一样的。[html]view plaincopyprint?<phone:PhoneApplicationPagex:Class="WebTask.MainPage"xmlns="http://schemas.mi 阅读全文
posted @ 2012-07-24 20:28 songtzu 阅读(215) 评论(0) 推荐(0)
摘要: 在很多资料或书籍上都翻译为“独立存储”,不过,我想了一下,决定将IsolatedStorage翻译为“隔离存储”,我想这样会更方便大家对这一概念的理解。关于何为隔离存储,按照固有习惯,我不希望作太多理论上的解释,一来理论化的东西容易把简单的事情变得复杂化,二来,就算把理论知识说得有多完美,相信大家都没兴趣看,就算你有兴趣也会一头雾水。隔离存储不是WP特有的,在Silverlight或WPF中也有,而且,更准确地讲,“独立存储”在.NET 2.0的时候已经出现,可能大家没有注意到,不信?你可以在.NET类库中找一下。以前没关注过也没关系,隔离存储其实是很简单的,说白了就是Windows Phon 阅读全文
posted @ 2012-07-24 20:27 songtzu 阅读(234) 评论(0) 推荐(0)
摘要: 上一节我们聊了目录的操作,这一节我们继续来看看如何读写文件。首先说一下题外话,许多朋友都在摇摆不定,三心二意,其实这样的学习态度是很不好的,如果你对Windows phone开发有兴趣,如果你真想学习,你就应该一心一意,静下心来学习。如果你不喜欢Windows phone开发,那你不必要徘徊,你可以选择IOS、Android或者其它平台。只要你选择了,你应该要相信你所选择的,记得有一句话是这样说的:选择你所爱的,爱你所选择的,虽然这个比方不大合适,但意思是相近的。其实,说到底,不是编程有多么难学,而很多半途而废的,其根本问题就是学习态度,我们不应该说我们的长辈,像60、70后的这一辈人怎么落后 阅读全文
posted @ 2012-07-24 20:26 songtzu 阅读(270) 评论(0) 推荐(0)
摘要: 图形如矩形、椭圆、路径等都从Shape类派生,它们一般表示规则或不规则图形,这些图形都是简单的二维图形,我相信大家都能理解的。例一:矩形。请看下面的XAML代码。[html]view plaincopyprint?<RectangleRadiusX="20"RadiusY="35"Fill="Blue"Canvas.Left="32"Canvas.Top="28"Width="200"Height="156"/>图形比较适合在Canvas中定位 阅读全文
posted @ 2012-07-24 20:25 songtzu 阅读(193) 评论(0) 推荐(0)
摘要: 本文是隔离存储的第三节,大家先喝杯咖啡放松,今天的内容也是非常简单,我们就聊一件东东——用户设置。当然了,可能翻译为应用程序设置合适一些,不过没关系,只要大家明白,它就是用于保存我们的应用程序的设置信息就行了。它属于字典集合,每一项保存的数据都以键-值对的形式存储,键值是字符串类型,不能为null,注意啊,不然会引发异常,当然,估计也没有人这么无聊,把空值保存。使用方法很简单,通过IsolatedStorageSettings的ApplicationSettings静态属必返回一个IsolatedStorageSettings实例,然后呢,你就可随便耍了。1、要向集合加入数据可调用Add方法, 阅读全文
posted @ 2012-07-24 20:25 songtzu 阅读(209) 评论(0) 推荐(0)
摘要: 说起路径这玩意儿,其实说的就是Path类,它藏在命名空间System.Windows.Shapes下,应该好找,它有一个很重要的属性Data,你不妨在“对象浏览器”中把它抓出来看看,该属性为System.Windows.Media.Geometry类型,如果大家再查看一下,这个Geometry类是一个抽象类,就是因为它太抽象了,所以不能被实例化。然后,我们看看它有哪些派生类?1、EllipseGeometry:好理解吧,一个几何图形,啥形状的?圆 or 椭圆。2、LineGeometry:这个家伙直来直去的,你更明白了,一条线的几何图形,两点一线啊。3、RectangleGeometry:这个 阅读全文
posted @ 2012-07-24 20:24 songtzu 阅读(224) 评论(0) 推荐(0)
摘要: 画刷是啥玩意儿?哈,其实画刷是用来涂鸦,真的,没骗你,至于你信不信,反正我信了。本文通过价绍几个典型的画刷,使你明白画刷就是用来涂鸦的。一、纯色画刷SolidColorBrush。这个家伙比较“纯”,当然它不是装纯,的确很纯,纯到只用一种颜色,所以叫“单色画刷”。来,看看这个示例,我们画一个矩形(放在一个Canvas中),然后用这个纯家伙来打扮一下。[html]view plaincopyprint?<RectangleCanvas.Left="5"Canvas.Top="130"Width="85"Height="7 阅读全文
posted @ 2012-07-24 20:24 songtzu 阅读(204) 评论(0) 推荐(0)
摘要: 上一节中,我们把最复杂的PathGeometry给干了,生剩下几个家伙就好办事了。一起来见见他们的真面目吧。一、LineGeometry这个几何图形就很简单了,一条线段,两个点——StartPoint And EndPoint。一起来看看下面的例子。[html]view plaincopyprint?<PathGrid.Column="0"Grid.Row="0"><Path.Data><LineGeometryStartPoint="20,5"EndPoint="200,320"/& 阅读全文
posted @ 2012-07-24 20:23 songtzu 阅读(174) 评论(0) 推荐(0)
摘要: 如果你觉得前面所讨论的绘制各种几何图形的方法过于复杂,那么,今天我们也来一次“减负”吧。当然,我们是很轻松的,本教程是不用考试的,也不会班级排名,仅仅为读者朋友们提供一种思路罢了。本节我们聊一下路径标记法,有了这个东东,你会觉得绘制路径会轻松了不少,事不宜迟,路径标记法到底有多方便,先看一个实例再说吧。[html]view plaincopyprint?<PathVerticalAlignment="Stretch"HorizontalAlignment="Stretch"Stroke="LightGreen"StrokeThi 阅读全文
posted @ 2012-07-24 20:22 songtzu 阅读(200) 评论(0) 推荐(0)
摘要: 上一节中我们简单扯了一下绘图指令,然而那也不是最简单的绘图法,今天,我再向大家推荐一种更好的绘图方案——Express Blend工具的使用。这个工具是随SDK一起安装的,也是免费的,相信大家都知道了,我想有朋友肯定还用过了,对的,那是一个非常强大的设计工具,甚至看起来比Flash还专业。下面,我们简单演练一下如何用这个工具来绘图,至于具体的使用方法,大家参照帮助文档,多玩玩就会熟练了。首先,启动Express Blend工具,不用我说告诉你怎么启动了吧,如果你不会,建议去考一下计算机一级。启动后,在开始那个对话框中,切换到“项目”面板,然后点击“新建项目”。在弹出的新建对话框中,选择WP应用 阅读全文
posted @ 2012-07-24 20:21 songtzu 阅读(210) 评论(0) 推荐(0)
摘要: 上一节中我们讨论了用double值进行动画处理,我们知道动画是有很多种的,今天,我向大家继续介绍一个动画类——ColorAnimation。其实,它和DoubleAnimation也是很像,毕竟所谓动画,无非就是在特定的时间段内,把一个值变为另一个值的一种过度形式。故ColorAnimation就是用于颜色过度动画的。其中,以下几个属性我们只需简单关注一下即可:1、By:相对于初始值所更改的值的总量。这个属性比较不好理解,所以我把它放到第一位,说实话,这种用颜色表示的值确实不好理解。我们不妨用DoubleAnimation的By属性来理解它,原理是一样的。举个例子,如果一个按钮的宽度Width 阅读全文
posted @ 2012-07-24 20:20 songtzu 阅读(250) 评论(0) 推荐(0)
摘要: 从本节开始,我们将围绕一个有趣的话题展开讨论——动画。看到动画一词,你一定想到Flash,毕竟WP应用的一个很重要的框架是Silverlight,在WP中也发挥了Silverlight的许多优点,可能不少人说,Silverlight就是和Flash差不多吧,当你深入了解了Silverlight后,你会发现,其实不然,Silverlight更偏重于数据处和企业级应用。好了,F话不多说,开始吹我们今天的牛皮吧,在吹牛皮之前,我们更应该知道牛皮是从哪里来的。故在说动画之前,先想一下,什么是Storyboard?这个东东你觉得怎么翻译好呢,叫演示图板吧,MSDN是这样翻译的,我说一个直观一点的概念吧, 阅读全文
posted @ 2012-07-24 20:20 songtzu 阅读(194) 评论(0) 推荐(0)
摘要: PointAnimation也是很简单的,与前面说到的两个Animation是差不多的,属性也是一样的,如By、From、To,不同的是,PointAnimation是目标值从一点到另一个点。我有理由相信,大家一定懂的,所以,我不多介绍了,给两个例了热一下身就行了。例一,让直线动起来。这个例子,以LineGeometry作为动画的目标对象,通过对StartPoint属性和EndPoint属性进行动画来让直线(其实是线段)动起来。[html]view plaincopyprint?<Grid><PathHorizontalAlignment="Stretch" 阅读全文
posted @ 2012-07-24 20:19 songtzu 阅读(221) 评论(0) 推荐(0)
摘要: 尽管前面介绍的几种动画会让觉得很好玩了,但是,不知道你是否发现,在前面说到的一系列XXXAnimation中,都有一个共同点,那就是仅仅针对两个值的目标值之间产生动画,如果使用By,将在原值和加上By后的目标值之间进行动画处理;如果使用From,To,那就更好理解了,就是首尾两个值之间值的动画。那么,如果我希望三个值呢?或者N多个值呢?每个值之间的时间间隔不一样呢?如果我还希望更复杂的动画效果呢?比如可以附加缓动函数的。显然,前面我们提到的几个动画类是不能完成的。不知道你以前有没有耍过Flash,若是在Flash里面,你会怎么做?对啊,我肯定会说——关键帧啊。是啊,那么,Silverlight 阅读全文
posted @ 2012-07-24 20:18 songtzu 阅读(190) 评论(0) 推荐(0)
摘要: 一、DiscreteDoubleKeyFrame离散型关键帧动画,重点,我们理解一下“离散”的意思,其实你查一下《新华字典》,“离”和“散”的意思相近。我们可以这样解释:每个关键帧之间是直接过渡,其间不经过动画插补。似乎这样理解有点苦涩难懂,所以,我们还是从实例入手。请参考以下XAML代码写一个示例:[html]view plaincopyprint?<GridLoaded="OnGridLoaded"><RectangleWidth="100"Height="100"Fill="Green"Ve 阅读全文
posted @ 2012-07-24 20:17 songtzu 阅读(240) 评论(0) 推荐(0)
摘要: 也许大家已经发现,其实不管什么类型的动画,使用方法基本是一样的,不知道大家总结出规律了没有?当你找到规律之后,你会发现真的可以举一反六的,不骗你。为了能帮助大家找到规律,今天,我们再来写两个例子。一、DiscreteObjectKeyFrame简单介绍一下这个吧,它只是为了方便我们进行一些大的切换而提供,但它也不是万能的,尽管它的目标类型是object类型,前提是它与其它动画一样,只能针对某对象的某属性进行动画处理。与Flash相比,Silverlight是少了一些灵活性,但我们知道,毕竟Silverlight并不是真的为了做动画而诞生的,微软推出它的意义是用于企业级应用。而所谓的对多媒体支持 阅读全文
posted @ 2012-07-24 20:16 songtzu 阅读(226) 评论(0) 推荐(0)
摘要: 好像有好几天没更新了,抱歉抱歉,最近“光荣”地失业,先是忙于寻找新去处,唉,暂时没有下文。而后又有一些琐事要办,不过不要紧,今天咱们继续。动画的内容就告一段落,本系列文章只作简单引导,不会覆盖每一个细节,最终能不能学好,就完全看各位自己了。从本节开始,我们将讨论推送通知,这个东西不太好理解,而推送通知的原理和过程,如果你看MSDN的示意图,相信你会有点晕,若不,我帖出给你看看。算了,不帖,不知怎么回事,上传不了图片。现补上图片。那么,我就说一个故事吧,希望能帮助你理解何为推送通知。上大学的时候,我很喜欢到图书馆借书,然后,晚上在宿舍里看,一直看到累了就睡觉。有一回,我发现一本好书叫《中国式商道 阅读全文
posted @ 2012-07-24 20:15 songtzu 阅读(274) 评论(0) 推荐(0)
摘要: 前面我们说了第一个类型——Toast通知,这玩意儿不知大家是不是觉得很新鲜,以前玩.NET编程应该没接触过吧?其实这东西绝对不复杂,只是刚接触的时候会有点莫名罢了,Toast通知和今天要说的磁贴通知,都有一个共同点,那就是格式都规定死了D。本质就是向特定的URI地址POST一个XML文档罢了,相信很多人都会,如果你还不会,真的,要补一补基础课了。多说无益,还是快点切入主题,开门见水吧。首先,我们要知道我们在服务器端要POST什么样的XML文档,来,一起来看看。[html]view plaincopyprint?<?xmlversion="1.0"encoding=&q 阅读全文
posted @ 2012-07-24 20:14 songtzu 阅读(227) 评论(0) 推荐(0)
摘要: title :Windows Phone XNA 4.0 3D游戏开发http://www.cnblogs.com/aawolf/archive/2010/08/29/1811686.htmltitle :Silverlight.XNA(C#)跨平台3D游戏研发手记:(二)四叉树遍历与人工智能A*算法在SLG移动路径范围测算中的应用http://www.cnblogs.com/alamiye010/archive/2011/09/21/2184260.htmlthis guy has lots of article about game in XNA, but not for wp.the l 阅读全文
posted @ 2012-07-24 20:13 songtzu 阅读(121) 评论(0) 推荐(0)