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

关于Silverlight实际使用中的一些初级小窍门。
摘要:Silverlight中是没有鼠标左键双击事件的。在实际项目中,我们只能够模拟鼠标双击事件。其原理如下:控件接受到第一次单击事件,此时开始设置一个计时器,在计时器的时间范围内收到第二次点击事件,那么执行双击事件应该执行的程序段。如果计时器在规定的时间范围内并未接收到第二次点击事件,那么执行单击事件。 一般情况下,windows默认的鼠标双击间隔在200毫秒以内,所以在程序中我们设置超时时间为200毫秒。 首先我们贴出鼠标双击类的所有源代码,此代码是在网上查找到的,进行了一部分的修改。类的注释在源码中已经写明:using System;using System.Threading;using . 阅读全文
posted @ 2011-02-23 15:55 .NET架构 阅读(3779) 评论(12) 推荐(5) 编辑
摘要:上节内容提要:在实际项目中,我们可能会遇到用户自定义XML模板字段,根据这个模板上的字段来显示相应的字段的值到DataGrid。在这种情况下,需要使用XmlReader解析获取这个用户自定义的XML模板上有哪些字段,根据这个字段动态的生成一个实体类,之后再为此动态生成的实体类实例化... 在上一节中我们生成了一个未曾排版的DataGrid。本节将为此窗体排版,动态生成多个绑定列,为绑定列的Header计算宽度,使得绑定列能够合理的占满整个DataGrid。结合上节所述根据XML模板自动生成多个DataGrid,达到动态生成DataGrid,动态排版的目的。 本节首先引用两个域名空间: usi. 阅读全文
posted @ 2011-02-22 15:53 .NET架构 阅读(7060) 评论(17) 推荐(8) 编辑
摘要:在实际项目中,我们可能会遇到用户自定义XML模板字段,根据这个模板上的字段来显示相应的字段的值到DataGrid。在这种情况下,需要使用XmlReader解析获取这个用户自定义的XML模板上有哪些字段,根据这个字段动态的生成一个实体类,之后再为此动态生成的实体类实例化,并且生成实体类集合绑定到DataGrid即可。(注意:平时我们绑定DataGrid是先在代码里面声明了实体类,实例化多个实体化类,形成实体类集合,绑定到DataGrid。可如果用户自定义XML格式的字段的时候,每次的实体类就不能为静态的了。必须为动态的才行。) 一、首先我们准备一个XML格式的模板数据。模拟用户自定义的XML模. 阅读全文
posted @ 2011-02-21 21:21 .NET架构 阅读(5621) 评论(13) 推荐(9) 编辑
摘要:在实际应用中,我们常常会遇到创建菜单树的情况,而Silverlight的TreeView有时候不能满足要求,在这里我们将使用Accordion模拟一个效果比较好的菜单。 在本节中,我们使用绑定的方式来动态的显示ObservableCollection数据源集合。 首先我们需要在项目中引入System.Windows.Controls.Toolkit.dll和System.Windows.Controls.Layout.Toolkit.dll两个DLL文件。然后再XAML和XAML.CS代码中引用他们。 然后我们开始准备数据源部分,首先我们声明两个实体类,Catalog类和TestSimple类 阅读全文
posted @ 2011-02-19 15:12 .NET架构 阅读(5094) 评论(13) 推荐(8) 编辑
摘要:在Silverlight中MouseDragElementBehavior拖动行为的对象添加了某一个元素之后,就可以让该元素可以被拖动。这个行为极大的方便了程序员的UI体验效果制作。但是在项目中,我们拖动了一个UI元素之后,我们往往还需要记录下这个UI元素的拖动后的元素坐标位置,以保存起来,让用户自定义的拖动元素下次打开的时候能够还原出来。在这里有一个问题,我们很难获得UI元素拖动后的X,Y坐标。经查询各方面资料以及实践之后得出这篇文章。通过加载MouseDragElementBehavior行为对象的DragFinished事件(本事件在每拖动一个像素点完成移动之后触发),在这个事件中我们. 阅读全文
posted @ 2011-02-17 13:31 .NET架构 阅读(5940) 评论(10) 推荐(8) 编辑
摘要:继上节所讲,在上一节中,我们讲述了DataGrid绑定webService传输过来的XML数据实体类集合。在本节我们将这个DataGrid移动到一个ChildWindow中去。然后实现ChildWindow的弹出效果。以及对这个DataGrid的分页效果。实例源代码也是在上一节的基础上做一些改动而来。 一.Silverlight弹出子窗口。首先我们右键点击项目-->“添加”-->“新建项”-->选择“Silverlight子窗口”,重命名为“PopWindow.xaml”然后点击确定。就添加Silverlight的子窗口文件了。在这里,我们将DataGrid解析和绑定数据的X 阅读全文
posted @ 2011-02-16 13:31 .NET架构 阅读(6653) 评论(7) 推荐(7) 编辑
摘要:根据第二节说述,我们能够从webService获取到相关的信息数据。那么我们如果要查询数据库的数据,就应该在webservice端使用Select 语句来查询到表,然后使用DataSet的GetXml()方法,获取到相应的XML格式化数据库表数据。在本实例中,我们在webService端模拟一串数据库表的数据。如下:<NewDataSet> <Table> <AddrName>四川</AddrName> <CityName>成都</CityName> <TelNum>028</TelNum> < 阅读全文
posted @ 2011-02-15 21:57 .NET架构 阅读(5116) 评论(11) 推荐(6) 编辑
摘要:继上节动态的添加Rectangle矩形框所讲。在实际应用中,我们动态添加矩形框,然后使用鼠标右键点击该矩形框,得到一个弹出窗口,再为此矩形框关联一些实际信息。即可实现用户自定义的配置页面。本节将讲两个小技巧:一.鼠标右键菜单。二.Silverlight全屏模式。一.使用鼠标右键菜单。在这里我们需要单独引入两个Dll文件。(右键项目名称-->“添加引用”-->寻找到System.Windows.Controls.Input.Toolkit.dll[可以从本文源代码中找到]) System.Windows.Controls; System.Windows.Controls.Input. 阅读全文
posted @ 2011-02-14 15:49 .NET架构 阅读(7216) 评论(21) 推荐(10) 编辑
摘要:本节我们讲一个关于在Sivlerlight中动态绘制矩形框的小技巧。此技巧可以让用户自定义的绘制矩形框。此技巧的关键在于,在一个Canvas中使用其事件,来绘制矩形,注意这里选用Canvas是因为Canvas.Top和Canvas.Left是一个很好的定位方法。当用户想要动态绘制一个矩形的时候,用户按下鼠标左键(MouseLeftButtonDown事件),记录当前鼠标点击的Canvas坐标,然后鼠标移动(MouseMove事件)的时候再记录当前鼠标移动到的点位,由此动态生成一个Rectangle矩形框。这个矩形框就会跟随你鼠标移动变换大小,当鼠标左键弹起(MouseLeftButtonUp. 阅读全文
posted @ 2011-02-12 13:06 .NET架构 阅读(3993) 评论(2) 推荐(10) 编辑
摘要:接上节所讲的,Silverlight可以加载外部的XML文件里面的内容,那么我们可不可以在外部XML里面配置一个WebService地址,并且以此加载这个地址来动态加载WebService呢?这样子就可以避免当WebService地址改变的时候,还要打开XAP包来重新修改WebService配置的地址了。 答案当然是可以的。在这里,我制作了一个实例。 在前面一节里面,我们讲到了使用WebClient来下载Silverlight程序外部的XML文件内容。在本节中,我们重点需要讲解一下如何使用反射来动态生成WebService代理类。关键代码如下: public void InitializeS. 阅读全文
posted @ 2011-02-10 14:53 .NET架构 阅读(4980) 评论(9) 推荐(5) 编辑
摘要:使用WebClient读取XAP包同目录下的XML文件 我们想要读取XAP包下面的XML文件,需要将此XML文件放在加载XAP包的网页的目录中去,然后使用URI方式读取此URL方式下的XML文件。 首先使用WebClient来异步下载此URL方式的XML文件,然后使用XmlReader来读取此XML文件的数据内容。 阅读全文
posted @ 2011-02-07 00:03 .NET架构 阅读(6304) 评论(15) 推荐(13) 编辑