摘要: Beginning Silverlight 4 in C#-Silverlight工具包参考源码当第一版本的Silverlight版本发布时,只包含两个控件,TextBlock和Rectangle.Silverlight开发者必须用这两个控件创建其它所有控件.还好,每个版本的Silverlight都添加了大量的新控件.但是有些控件仍然没有包含在Silverlight里.其中一个例子就是树控件.开发者如果想创建一个使用树的Silverlight应用程序有几个选择,它们自己创建一个树控件,购买第三方控件,或者到开源树控件里找一个免费的.虽然三个方法都可以,但这一章,我们研究最后一个方案,Silve 阅读全文
posted @ 2013-01-31 10:03 于为 阅读(232) 评论(0) 推荐(0) 编辑
摘要: Beginning Silverlight 4 in C#-数据绑定和Silverlight List控件参考源码上一篇关注Silverlight包含的表单控件.这一篇,你会看到两个显示列表数据的控件:ListBox和DataGrid.这些是典型的通过数据绑定技术实现绑定数据的控件.数据绑定通过数据绑定,UI元素会从数据源中"绑定"数据,就像下图,当数据源改变,UI元素绑定的这些数据会更新已反应数据源的变化.数据可以来自不同类型的源,同时绑定目标也可以是任何UI元素,包括标准的Silverlight控件.数据绑定简化了应用程序的开发.因为改变是自动反应的,你不要手动更新UI 阅读全文
posted @ 2013-01-31 10:02 于为 阅读(294) 评论(0) 推荐(0) 编辑
摘要: Beginning Silverlight 4 in C#-Silverlight控件设置控件属性最简单直接设置属性的方法是使用特性(attribute)句法.但是,在某些情况,只能用元素(element)句法.特性句法大部分的属性可以使用特性句法以一个简单的字符串形式表现.在XAML设置一个特性就好像是在XML里设置一个特性.一个XML元素包含一个节点和一些特性.Silverlight控件以相同的方式定义,控件名是节点,属性以特性(attributes)的方式定义.例如,你可以简单地使用特性句法设置一个按钮控件的Width,Height和Content属性,如下:<Button Wid 阅读全文
posted @ 2013-01-31 10:01 于为 阅读(152) 评论(0) 推荐(0) 编辑
摘要: Beginning Silverlight 4 in C#-Silverlight的布局管理-学习笔记布局管理Silverlight提供了一个非常灵活的布局管理系统让你指定控件怎样在你的应用程序中出现.你可以使用静态的布局,也可以使用自适应浏览器的动态的布局.5个布局控件中,每一个都有优点和缺点,见下面表格:控件描述优点缺点Canvas基于绝对位置的控件非常简单的控件需要每个控件都有Canvas.Top和Canvas.Left属性来定义控件在Canvas中的位置StackPanel基于水平和垂直"栈"的控件允许一个快速的动态布局.使用StackPanel可以做一些很有趣的布 阅读全文
posted @ 2013-01-31 09:59 于为 阅读(200) 评论(0) 推荐(0) 编辑
摘要: Beginning Silverlight 4 in C#-Welcome to Silverlight 4[学习笔记]Silverlight是什么就像我上面章节所解析,所有的RIAs有一个相同的特征,一个位于用户与服务之间的客户端运行时.在Microsoft的RIA解决方案中,Silverlight就是这个客户端运行时.尤其,Silverlight是一个可以把用户接口和图形资源插入到HTML页面的跨平台,跨浏览器的插件.用于定义Silverlight的canvas的markup称为可扩展程序标记语言(Extensible Applic ation Markup Language,XAML,发 阅读全文
posted @ 2013-01-31 09:57 于为 阅读(175) 评论(0) 推荐(0) 编辑
摘要: Silverlight 与服务器利用Socket通讯,实时从服务器获取数据(本文中的数据是地理坐标),由于没有GPS,所以本文在服务器写了一个构造新坐标的函数(本文是一个三角函数),然后利用Timer组件,实时调用,得到新的坐标,并将新的坐标发送给客户端,客户端接收到发回的新的坐标,并在地图相应的位置进行标识。最后在地图上我们就会看到一个自动绘制的三角函数曲线。关于本文的一点说明:1.由于时间和篇幅的关系,也由于本人能力有限,所以程序还存在很多bug,不够完善,也许你运行的时候还会抛异常,本文关注的是关键功能的实现,所以希望高手勿喷,如果您有更好的方法和建议欢迎留言分享。2.作者没有GPS设置 阅读全文
posted @ 2013-01-29 08:29 于为 阅读(559) 评论(0) 推荐(0) 编辑
摘要: C#网络编程(接收文件) - Part.5这篇文章将完成Part.4中剩余的部分,它们本来是一篇完整的文章,但是因为上一篇比较长,合并起来页数太多,浏览起来可能会比较不方便,我就将它拆为两篇了,本文便是它的后半部分。我们继续进行上一篇没有完成的步骤:客户端接收来自服务端的文件。4.客户端接收文件4.1服务端的实现对于服务端,我们只需要实现上一章遗留的sendFile()方法就可以了,它起初在handleProtocol中是注释掉的。另外,由于创建连接、获取流等操作与receiveFile()是没有区别的,所以我们将它提出来作为一个公共方法getStreamToClient()。下面是服务端的代 阅读全文
posted @ 2013-01-25 16:20 于为 阅读(134) 评论(0) 推荐(0) 编辑
摘要: C#网络编程(异步传输字符串) - Part.3这篇文章我们将前进一大步,使用异步的方式来对服务端编程,以使它成为一个真正意义上的服务器:可以为多个客户端的多次请求服务。但是开始之前,我们需要解决上一节中遗留的一个问题。消息发送时的问题这个问题就是:客户端分两次向流中写入数据(比如字符串)时,我们主观上将这两次写入视为两次请求;然而服务端有可能将这两次合起来视为一条请求,这在两个请求间隔时间比较短的情况下尤其如此。同样,也有可能客户端发出一条请求,但是服务端将其视为两条请求处理。下面列出了可能的情况,假设我们在客户端连续发送两条“Welcome to Tracefact.net!”,则数据到达 阅读全文
posted @ 2013-01-25 16:18 于为 阅读(103) 评论(0) 推荐(0) 编辑
摘要: C#网络编程(订立协议和发送文件) - Part.4文件传输前面两篇文章所使用的范例都是传输字符串,有的时候我们可能会想在服务端和客户端之间传递文件。比如,考虑这样一种情况,假如客户端显示了一个菜单,当我们输入S1、S2或S3(S为Send缩写)时,分别向服务端发送文件Client01.jpg、Client02.jpg、Client03.jpg;当我们输入R1、R2或R3时(R为Receive缩写),则分别从服务端接收文件Server01.jpg、Server02.jpg、Server03.jpg。那么,我们该如何完成这件事呢?此时可能有这样两种做法:类似于FTP协议,服务端开辟两个端口,并持 阅读全文
posted @ 2013-01-25 16:18 于为 阅读(153) 评论(0) 推荐(0) 编辑
摘要: C#网络编程(同步传输字符串) - Part.2服务端客户端通信在与服务端的连接建立以后,我们就可以通过此连接来发送和接收数据。端口与端口之间以流(Stream)的形式传输数据,因为几乎任何对象都可以保存到流中,所以实际上可以在客户端与服务端之间传输任何类型的数据。对客户端来说,往流中写入数据,即为向服务器传送数据;从流中读取数据,即为从服务端接收数据。对服务端来说,往流中写入数据,即为向客户端发送数据;从流中读取数据,即为从客户端接收数据。同步传输字符串我们现在考虑这样一个任务:客户端打印一串字符串,然后发往服务端,服务端先输出它,然后将它改为大写,再回发到客户端,客户端接收到以后,最后再次 阅读全文
posted @ 2013-01-25 16:17 于为 阅读(148) 评论(0) 推荐(0) 编辑