随笔分类 -  Silverlight实用窍门序列

关于Silverlight实际使用中的一些初级小窍门。
摘要: 在Silverlight的变换中有五种类型,分别是RotateTransform:旋转变换、ScaleTransform:缩放变换、SkewTransform:倾斜变换、TranslateTransform:移动变换、TransformGroup:变换组、MatrixTransform:矩阵变换,在这里我们分别讲解这五种变换的使用方法以便在实际应用中更好的应用。 RotateTransform:旋转变换 使用方法:设置Angle属性为需要转换的角度,设置其中心点为CenterX、CentyY,这个是X、Y轴的二维平面旋转。 下面我们来看一个Demo实例,可以设置让图标按照某一个角度旋转,其代码如下: 阅读全文
posted @ 2011-08-15 10:06 .NET架构 阅读(7109) 评论(5) 推荐(4) 编辑
摘要: 在本文将以MVVM Light Toolkit为例讲解MVVM框架在现实中的使用入门,首先我们在http://mvvmlight.codeplex.com/下载它的MVVM框架下来。也可以通过 http://files.cnblogs.com/chengxingliang/GalaSoft.MvvmLight.V3.rar 下载MVVM Light Toolkit。然后我们安装这个安装包,然后重新打开VS2010,新建一个项目,Tip:MVVM分为Model、ViewMode、View三层。 •Model是实体类层,它存放所有需要用到的实体类。 •ViewMode层是逻辑层,操作所有Model层和View界面层的逻辑运算并且作为一个大的实体类,提供属性绑定到View层上面去。 •View层是界 阅读全文
posted @ 2011-08-08 10:11 .NET架构 阅读(8094) 评论(8) 推荐(8) 编辑
摘要: 本节将讲述三个Silverlight中应用的小技巧:Silverlight页面的放大缩小、Silverlight操作Html、Html操作Silverlight控件。 一、Silverlight页面的放大缩小 首先对于Silverlight页面的放大缩小我们可以使用ScaleTransform对Canvas控件进行设置。这样所有在该Canvas控件内的所有子控件都被放大缩小。 在这里我们使用Silverlight中的按钮,通过HtmlElement类操作Html中的ID为Text1的input控件的Value属性值。 在这里我们通过GetElementById方法找到Html控件然后为它增加一个onchange事件,在这个事件中获取到控件的值并且设置到Silverlight控件中去。 阅读全文
posted @ 2011-08-03 10:19 .NET架构 阅读(5336) 评论(8) 推荐(6) 编辑
摘要: 在Silverlight中我们有时候需要手工绘制线条或者直线等,在这里我们认识一下InkPresenter控件,它将支持用户使用鼠标、手写板等工具来绘制图形或者笔迹,用途为涂鸦、笔迹确认等等。 InkPresenter是继承于Canvas控件的支持所有的Canvas属性,并且其内部还可以嵌套显示其他控件。InkPresenter控件的显示分为三层:底层是InkPresenter的Background、中间层是InkPresenter的Children属性的控件、最后才是Strokes属性中的笔画层。 对于Strokes属性中的笔画Stroke我们可以设置它的颜色、粗细、外边框颜色等等属性以获得满意的笔画类型。下面我们来看看如何使用InkPresenter控件,首先我们来看Xaml代码如下 阅读全文
posted @ 2011-07-28 10:18 .NET架构 阅读(4008) 评论(7) 推荐(8) 编辑
摘要: Silverlight中的独立存储是其内部的可信任的可访问文件空间,在这里你可以使用Silverlight随意的创建、读取、写入、删除目录和文件,它有一些类似于Cookie,但是它可以在客户端保存大量的数据。这个空间默认是1M,如果不够的时候可以申请扩大容量。 网站+用户+应用程序定位一个独立存储,也就是说必须得相同网站,相同用户,相同应用程序才能够访问这个独立的存储空间。独立存储是IsolatedStorageFile密封类来进行设置的,这个类分布在命名空间System.IO.IsolatedStorag。我们引用System.IO命名空间对文件进行操作。下面我们来看一个演示的Xaml代码如下: 阅读全文
posted @ 2011-07-25 10:03 .NET架构 阅读(2411) 评论(11) 推荐(6) 编辑
摘要: 在Silverlight中的DataGrid控件使用中我们想点击其中一行并且看这一行的详细信息应该如何做呢?而且这个详细信息是多行的数据,而非简单的几个属性。 在这里我们使用DataGrid.RowDetailsTemplate来设置或者获取行详细信息。首先我们准备一个DataGrid命名为A,设置其RowDetailsVisibilityMode="VisibleWhenSelected" (行详细信息模板的显示模式是当这行被选中的时候展开这行的详细信息。)然后再为A设置DataGrid.RowDetailsTemplate模板,并且在这个模板中添加一个DataGrid命名为B,这就是前台的XAML代码,在后台中我们设置一个实体集AList绑定到A的DataGrid,然后在AList实体集中有一个属性是BList,这个就是多行的详细信息。将BLis 阅读全文
posted @ 2011-07-22 10:06 .NET架构 阅读(6722) 评论(22) 推荐(8) 编辑
摘要: 问题一:在某一些情况下,我们使用MVVM模式的时候,对于某一个字段(AgeField)需要在前台的很多个控件(A、B、C、D、E)进行绑定,但是如何能够让我们后台字段名改变的时候能够非常方便的改变所有使用了这个字段的控件呢? 回答:使用Element to Element Binding,将AgeFiled绑定到A控件,然后再让B、C、D、E控件绑定A控件的使用AgeField字段的属性。 例如:字段(AgeField)的数据是年龄大小,A、B、C、D、E控件分别是Ellipse、Label、Slider、TextBox、ProgressBar,这些字段的Width、Value或者Text值按照常规的做法,这几个控件都是在MVVM模式下都是绑定的AgeField。但是这个字段名在后期代码维护的时候修改为Age了,我们就不 阅读全文
posted @ 2011-07-18 10:35 .NET架构 阅读(5778) 评论(3) 推荐(6) 编辑
摘要: 本文主要讲解如何使用IValueConverter和TypeConverter。我们通过两个思考问题来引入如何使用IValueConverter和TypeConverter! IValueConverter主要用于将数据源的数据转换为需要在界面上显示的数据,例如:将Url地址转换为图片显示到界面上、将float类型数据显示为货币类型、bool值和Visibility转换等等。 TypeConverter主要用于在XAML代码中的字符串类型转换为其他类型的数值,比如将一段字符串转为Double类型以供Width属性使用。 思考一:我的数据集合的其中一个集合中的属性为某个图片的URL,如何将这个URL地址转换为图片显示到DataGrid行中呢? IValueConverter的使用方法: 阅读全文
posted @ 2011-07-12 10:04 .NET架构 阅读(3602) 评论(6) 推荐(8) 编辑
摘要: 在本节中我们将讲述如何通过WinDbg工具对Silverlight应用程序进行调试,我们可以判断其无效过期的引用或者事件,将其释放掉,以达到及时释放内存的作用。首先我们需要下载WinDbg工具,在http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.11.1.402.msi即可下载32位的WinDbg工具。并且安装好这个工具。然后我们准备一个最简单的Silverlight应用程序,其Xaml代码如下: 阅读全文
posted @ 2011-06-13 11:03 .NET架构 阅读(2377) 评论(6) 推荐(6) 编辑
摘要: 在Silvelight 4.0的项目中我们也需要制作单元测试以保证项目的质量,本节将讲诉如何创建一个项目进行单元测试。 一、创建一个名为SL4UnitAPP的Silverlight 应用程序,不需要Web承载网站。 二、然后鼠标右键点击SL4UnitAPP解决方案,添加一个名为SL4UnitTest的Silverlight Unit Test Application。 三、在平时VS2010 创建项目时无法添加一个Silverlight Unit Test Application,所以我们需要将C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\下的ItemTemplates文件夹和ProjectTemplates文件夹都拷贝到D:\My Documents\ 阅读全文
posted @ 2011-06-07 10:42 .NET架构 阅读(1987) 评论(4) 推荐(4) 编辑
摘要: 在最近的几个月内整理出了Silverlight的一些相关的比较实用的功能讲解文章,并且随着Silverlight 5 beta版本的发布整理出的新特性系列文章,在这里做一个总的概括和索引,以方便大家观看。   Silverlight 5 beta新特性探索系列 内容简介:Silverlight 5 beta新特性探索系列是在Silverlight 5 beta版出现之后第一时间内写出的一个探索新特性的文章,对于绝大部分Silverlight 5 beta的新特性都在此系列文章中有所讲解。 适用于广大Silverlight爱好者或者即将采用Silverlight 5启动新项目的项目开发人员。每篇文章都有实例源码下载运行。 阅读全文
posted @ 2011-05-27 10:01 .NET架构 阅读(9572) 评论(17) 推荐(20) 编辑
摘要: 本实例将读取拖动到Silverlight的ListBox控件中的txt文件或者Jpg文件。在本实例中将讲如果通过UIelementA.Drop事件获取到拖动到UIelementA上的文件的相关名称以及路径等信息,以处理多个外部文件拖动到Silverlight中的相关一些小技巧的应用和操作。 在本例中我们设置外部文件拖动到ListBox中去,首先我们要设置ListBox的AllowDrop="True",再添加一个Drop事件Drop="listBox1_Drop",这样在外部文件拖动到ListBox中的时候可以触发Drop事件。 首先我们来看MainPage.xaml代码如下所示: 在上面有一个TextBlock显示读取到的Txt文件内容,还有一个Image控件显示读取到的图片内容。下面我们看MainPage.xaml.c 阅读全文
posted @ 2011-05-23 10:18 .NET架构 阅读(2548) 评论(16) 推荐(8) 编辑
摘要: 在Silverlight中我们可以捕捉视频设备以制作视频会议系统,或者通过视频设备截图功能上传头像等功能。 下面我们通过一个简单的实例来访问视频设备,并且截取图像下载该截图文件至本地。 一、在Silverlight运行界面中我们检查系统默认摄像头和麦克风是否可用如下图: 在这里我们建立一个Border显示视频图像,然后加三个按钮分别控制摄像头的打开、关闭、截图。最后加一个StackPanel来显示截图的影像。 三、下面请看CS代码如下所示,对于截图保存图片所用函数是在园子里的zhangxuguang2007兄弟那里找的。 阅读全文
posted @ 2011-05-11 09:40 .NET架构 阅读(4773) 评论(4) 推荐(7) 编辑
摘要: 在Silverlight中有时需要进入不同的XAML页面,但是一般情况下是不能实现“前进”和“后退”的,在这里我们可以使用Frame+Page控件制作导航功能实现上一页和下一页的跳转功能。 在本文中我们制作一个实例如下:添加一个Frame控件,然后点击“加载UC”和“加载PageShow”按钮加载UC.xaml和PageShow.xaml页面。在加载后我们可以通过鼠标右键菜单中的“上一页”和“下一页”按钮进入上下页,可以访问到历史页面。在UC页面中有一个按钮,点击该按钮“测试按钮”即可进入PageDemo.xaml并且跟入参数,在该页面接收参数显示出来。 首先我们在MainPage.xaml页面中添加一个Frame控件(注意引入System.Windows.Controls.Navigation.dll),并且设置UriMapp 阅读全文
posted @ 2011-05-05 10:08 .NET架构 阅读(4904) 评论(18) 推荐(3) 编辑
摘要: Json数据是一种轻量级的数据交换格式,它的传输效率比XML更高,在Silverlight的应用起来可以让Silverlight获取数据速度增快,减少传输的字符数量。在本节将用一个实例来讲解如何将一个类序列化为Json数据并且传输到Silverlight端。 实现原理:在服务器端新建一个一般处理程序页面“GetJson.ashx”,使用DataContractJsonSerializer类的WriteObject()函数来将类序列化为Json数据集合,然后再Silverlight端通过DataContractJsonSerializer类的ReadObject()函数来将Json数据还原为类。当然在Silverlight端我们使用WebRequest来下载数据。 首先我们新建一个新的Silverlight应用程序,然后再 阅读全文
posted @ 2011-04-15 10:37 .NET架构 阅读(3656) 评论(15) 推荐(6) 编辑
摘要: 在本节中将讲述Silverlight和ASP.NET页面的相互传参的两种常用方式:Cookie和QueryString。首先我们新建一个名为SLConnectASP.NET的Silverlight应用程序,然后在SLConnectASP.NET.web项目中添加一个Index.aspx的页面。 一、Silverlight和ASPX页面的QueryString传参 实现思路:在Silverlight端跳转到页面到Index.aspx并且传递一个QueryString参数ID,在该Index.aspx页面显示出ID。在Index.aspx页面有一个按钮可以向Silverlight所在页面传递一个参数aspxid,在Silverlight端读取aspxid参数并且显示出来。 首先我们看Silverlight后台代 阅读全文
posted @ 2011-04-14 10:23 .NET架构 阅读(4721) 评论(3) 推荐(7) 编辑
摘要:Silverlight中的事件分为普通事件和冒泡路由事件,它并没有包括WPF中的隧道路由事件,在本章中将详细讲解冒泡路由事件和如何注册一个冒泡路由事件。 一、细解冒泡路由事件 冒泡路由事件可以比喻为:一个父对象X包含子对象A,在子对象A中没有事件处理程序,但是父对象X中有一个鼠标左击事件处理程序。当用户点击子孙对象A时,这个事件又鼠标左击冒泡传递到父对象X。父对象的事件处理程序就处理这次点击事件。 总结出来就是:冒泡路由事件是从子孙的元素传递到父对象事件处理程序中进行处理的一种解决方案,直到这个事件传递到最上层根对象。 如果子对象有这类路由事件(如:MouseLeftButtonDown)的. 阅读全文
posted @ 2011-04-11 16:16 .NET架构 阅读(3883) 评论(6) 推荐(6) 编辑
摘要:Silverlight中我们经常使用自定义控件,并且在自定义控件中制作自定义属性,在项目中大量的创建这个自定义控件,每次都需要占用内存来创建这个属性的默认值。可很多时候我们都只需要去使用这个属性的默认值就可以,并不用每次都使用这个属性。所以在Silverlight和WPF中引入了依赖属性这个概念,以节约内存并且可以灵活的使用属性。首先我们了解一下Silverlight中有3种属性的创建方式:一、CLR自定义属性。二、依赖属性。三、附加属性。 一、下面我们来看一下CLR自定义属性的创建方式如下,相信大家都创建过: private string _RectWidth; public string. 阅读全文
posted @ 2011-04-07 14:26 .NET架构 阅读(2874) 评论(1) 推荐(4) 编辑
摘要:Silverlight的OOB模式(out-of-browser)下可以提升用户操作权限,访问系统API、将Silverlight程序安装在本地计算机上面而不必再浏览器中运行,在本节将讲诉一个只能应用于OOB模式下的WebBrowser控件的简单应用。 首先创建一个新的Silverlight应用程序名为SLBrowser并且设置其运行在OOB模式下,鼠标右键点击SLBrowser项目,选择“属性”。在属性页的“Silverlight”栏下面我们在“允许在浏览器外运行应用程序”打钩。 然后点击“浏览器外设置”按钮,设置窗口的样式,另外在最下面有一个“在浏览器外运行时需要提升的信任”按钮就是提升. 阅读全文
posted @ 2011-04-02 16:12 .NET架构 阅读(3828) 评论(5) 推荐(8) 编辑
摘要:Silverlight中我们很多时候需要上传下载数据的时候,在本节将讲述使用WebClient上传String、下载String、上传Stream流、下载Stream流的4个方法和相应的事件。下面我们首先认识一下WebClient类。 WebClient的主要函数如下: •OpenReadAsync 打开流向指定资源的可读流。•OpenWriteAsync 打开一个流以将数据写入指定的资源。这些方法不会阻止调用线程。•DownloadStringAsync 以字符串形式下载位于指定 Uri 的资源。•UploadStringAsync 将指定的字符串上载到指定的资源。这些方法不会阻止调用线程. 阅读全文
posted @ 2011-03-30 15:43 .NET架构 阅读(4310) 评论(9) 推荐(9) 编辑