- 博客(48)
- 收藏
- 关注

原创 精通Silverlight——目录
第一篇 Silverlight入门与开发环境第1章 Silverlight基础1.1 Silverlight概述1.1.1 Silverlight是什么1.1.1 Silverlight能做什么1.1.3 跨平台的用户体验1.1.4 可扩展的编程模型和协作工具1.1.5 高质量、低成本的多媒体技术1.1.6 结合数据、服务器和服务1.2
2008-04-18 14:04:00
2178
原创 精通Silverlight——12.7 小结
本章介绍了在Silverlight中创建交互式应用程序的基本知识。首先介绍了如何声明事件,接下来讨论了如何处理键盘和鼠标事件,在12.4节介绍了Silverlight SDK中提供的一系列UI控件,接着讨论了如何创建自定义的用户控件,本章最后一节介绍了如何动态创建控件。下一章,将讨论如何使用Downloader对象。
2008-04-28 15:50:00
783
原创 精通Silverlight——12.6.4 鼠标跟随示例
最后举一个简单的鼠标跟随示例结束对本章的讨论,该示例的XAML代码与前一个例子的相同,在后置代码中,使用.NET语言动态创建椭圆,当鼠标在画布上移动时,简单的调整椭圆的位置,后置代码如下所示:using System;using System.Windows;using System.Windows.Controls;using System.Windows.Documen
2008-04-28 15:48:00
1242
原创 精通Silverlight——12.6.3 从XAML代码中创建控件
还可以直接从XAML代码片段中动态创建控件,通过使用XamlReader类的Load方法,该方法需要一个字符串类型的XAML代码片断。XamlReader.Load方法将在内存中创建控件,如果创建成功,将返回一个Object类型的引用,通过类型转换变为所需的类型。如果创建失败否则返回null。下面的示例代码使用XAML代码创建一个矩形,如下所示:using System;using
2008-04-28 15:47:00
1171
原创 精通Silverlight——12.6.2 动态绘制矩形示例
本节将上节所学习的知识创建一个动态绘制矩形的示例,该示例可以形成类似绘图软件中的选择效果,示例的运行效果如图所示,可以用鼠标在画布上拖动,形成一个矩形选择框,松开鼠标则创建一个无填充的矩形。示例程序的XAML代码如下所示: xmlns="http://schemas.microsoft.com/client/2007" xmlns:x
2008-04-28 15:46:00
1472
原创 精通Silverlight——12.6.1 使用.NET代码创建控件
由于每个XAML对象都对应一个.NET对象,因此在.NET代码中创建控件与在其他.NET项目中一样,下面的代码演示如何创建一个矩形,如下所示: public partial class Page : Canvas { public void Page_Loaded(object o, EventArgs e) {
2008-04-28 15:43:00
1060
原创 精通Silverlight——12.6 动态创建控件
在Silverlight 1.1中,每个XAML对象都对应一个.NET类。因此,可以直接使用.NET程序语言创建UI控件。另外,还可以通过XAML代码片断来创建UI控件。
2008-04-28 15:42:00
894
原创 精通Silverlight——12.5.5 测试自定义控件
为了测试自定义控件,需要新建一个Silverlight项目,在解决方案资源管理器上右击鼠标,选择“添加|新建项目”,为测试Silverlight项目命名为TestingDemo。添加对mySampleControls类库项目的引用,并为XAML文件指定自定义控件的命名空间,然后像使用SDK中的控件一样声明自定义控件,XAML代码如下所示。 xmlns="http://
2008-04-24 18:01:00
1226
原创 精通Silverlight——12.5.4 添加控件事件
为控件添加事件可以分为如下所示的三步:q 定义事件。q 触发事件。为了给MyLabel控件添加单击事件,需要先声明一个Click事件,代码如下: public event EventHandler Click;当用户在文本上单击鼠标左键后,便触发事件,只需要在MouseLeftButton被触发时触发事件即可,代码如下所示:
2008-04-24 17:59:00
1580
原创 精通Silverlight——12.5.3 定义控件属性
在开始添加属性和行为之前应该理解,定义用户UI的XAML文件将作为程序集的资源嵌入到程序集中。因此为了能够引用XAML中定义的对象,必须在类的构造函数中添加一些代码,通常分为如下四步。q 获取当前程序集的实例。q 从程序集中获取资源文件流。q 将流转换为字符串类型。q 使用Control类的 InitializeFromXaml 实例
2008-04-24 17:58:00
1204
原创 精通Silverlight——12.5.2 定义控件外观
与开发常规的Silverlight页面类似,用户控件项目模板创建了一个XAML文件和一个代码后置文件。在XAML代码文件中,可以像在常规Silverlight中一样定义外观。在XAML文件中添加一个文本块,代码如下所示: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="64
2008-04-24 17:56:00
858
原创 精通Silverlight——12.5.1 创建Silverlight类库项目
单击VS2008的“文件|新建”,在“新建项目”对话框中选择“Silverlight|Silverlight Class Library”项目,命名为mySampleControls,单击“确定”按钮,如图所示。 类库项目默认会创建一个名为Class1.cs的类文件,删除该文件。右击类库项目名称,在弹出的菜单中选择“添加|新建项”,在弹出的“添加新项”窗口中选择“Silv
2008-04-24 17:55:00
1324
原创 精通Silverlight——12.5 创建Silverlight用户控件
如果读者阅读过SDK控件的代码,会发现所有的用户控件都派生自ControlBase抽象类,而ControlBase又派生自Silverlight安装目录的agclr.dll程序集中的System.Windows.Controls.Control抽象类,通过派生自这个类,可以创建自定义的控件。本节首先通过创建一个简单的Lable控件,来一步步演示如何创建用户控件。
2008-04-24 17:52:00
1112
原创 精通Silverlight——12.4.9 ListBox列表框控件
Silverlight SDK中还提供了一个类似于ASP.NET中的列表框控件。ListBox控件的声明XAML代码如下所示。与ScrollViewer控件类似,必须在后置代码中为ListBox控件添加内容,后置代码如下所示。using System;using System.Windows;using System.Windows.Controls;using Sys
2008-04-24 17:49:00
1239
原创 精通Silverlight——12.4.8 ScrollViewer滚动查看器控件
为了能显示滚动内容,应该使用ScrollView控件,通常的声明方式如下面的XAML代码所示。 xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:uicontrol=
2008-04-24 17:46:00
4759
原创 精通Silverlight——12.4.7 ScrollBar滚动条控件
ScrollBar控件派生自Silder控件,因此具有与Silder相似的特性与方法,此外ScrollBar还组合ScrollBarTrack、RepeatButton控件以形成一个类似Windows程序的滚动条。ScrollBar的XAML声明如下所示。 水平方向的滚动条 (用代码控制方向和范围) --> 垂直方向的滚动条 (用代码控制方向和范围)-->
2008-04-24 17:45:00
5954
3
原创 精通Silverlight——12.4.6 Slider拖动条控件
Silder控件的外观与GridThumb控件类似。实际上,Silder就是由一个可拖动的Thumb控件和一个矩形条组成的。Silder控件的声明方式如下所示。 运行效果如图所示。尽管程序可以正常运行,但是Thumb是不可以拖动的,还需要设置Silder的Range属性指定拖动范围。默认情况下,Silder控件水平显示,可以通过设置Silder的几个属性来设置垂直
2008-04-24 17:44:00
4179
2
原创 精通Silverlight——12.4.5 按钮控件继承层次结构
前面讨论了五类按钮控件,这些控件具有一些共同的特性,因为这些控件都派生自ButtonBase控件,图显示了按钮控件的类结构图。ButtonBase实现了基本的按钮结构,比如鼠标移动到按钮上时更新按钮的显示等。Button类则进一步完善了ButtonBase类,提供了获取和设置按钮文本属性以及鼠标单击事件。Thumb直接派生自ButtonBase基类,该类并不需要文本和单击属性,但是
2008-04-24 17:42:00
1221
原创 精通Silverlight——12.4.4 Thumb按钮控件
与GripThumb控件类似,不同之处在于该控件没有Grip条。Thumb具有几个与拖动相关的事件,可以实现按钮的拖动操作,这些事件分别是:q DragStart事件:当鼠标左键按下开始拖动时,触发该事件。q DragEnd事件:当鼠标左键松开时,停止拖动操作触发该事件。q DragDelta事件:当鼠标左键按下并移动鼠标时,触发该事件。一些其
2008-04-24 17:38:00
2709
原创 精通Silverlight——12.4.3 GripThumb按钮控件
GripThumb是一种非常有趣的按钮控件,该按钮的外观如图所示。上图所示的按钮的声明XAML代码如下所示。 看以看到GripThumb有两个自定义的属性:q Size属性:表示GridThumb控件的宽度,通常GridThumb固定的。q MinimumSize属性:显示出中间的小圆形所需要的最小的宽度。除了外观与Button控件不一致之
2008-04-24 17:13:00
1034
原创 精通Silverlight——12.4.2 RepeatButton按钮控件
RepeatButton控件派生自Button控件,当鼠标按下RepeatButton时,这个控件能够不断的发送单击事件。RepeatButton的声名代码如下所示。 x:Name="repeatbutton"/>RepeatButton并没有公开任何自己定义的方法,RepeatButton按钮运行时的效果如图所示。RepeatButton与Button之间最大的不同在
2008-04-24 17:11:00
1718
原创 精通Silverlight——12.4.1 Button按钮控件
为了添加Button控件,可以使用如下的代码。 运行效果如图所示。为Button按钮添加事件也非常简单,与本书前面讨论过的其他对象一样,代码如下所示。 public void Page_Loaded(object o, EventArgs e) { // Required to initial
2008-04-24 17:05:00
802
原创 精通Silverlight——12.4 使用Silverlight SDK中的控件
Silverlight 1.1的SDK中附带了一些很有用的控件,位于安装SDK的文件夹的Tools目录中。Tools目录中有一个解决方案资源管理器文件。用VS2008打开该文件可以看到SDK中的控件源代码和示例程序。如图所示。 Silverlight 1.1 SDK中包括如下几种控件:q Button按钮控件。q Slider拖动条
2008-04-24 17:02:00
1227
原创 精通Silverlight——12.3.3 键盘事件示例
本节举一个使用键盘事件的示例,很简单,就是简单的处理按键的事件,通过获取KeyEventArgs类型的属性来获取键值信息,示例效果如图所示。在该示例中,当单击任何键盘时,会在文本块中显示该KeyboardEventArgs类的四个参数的值,如果按下的值为Ctrl+C,则会隐藏矩形。如果按下Ctrl+V,则重新显示矩形,形成类似复制和粘贴的效果。示例的XAML代码简单的绘制了
2008-04-24 17:00:00
1563
原创 精通Silverlight——12.3.2 KyeboardEventArgs参数
KyeboardEventArgs类有四个属性,分别表示与按键相关的信息:q Ctrl和Shift布尔属性:表示Ctrl或者是Shift键是否被按下。q Key整型属性:表示当前所按键的键编码值。q PlatformKeyCode:获取和设置当前所按键的平台编码值。Key与PlatformKeyCode的区别在于Key代表一些比较通用的键值编码,无平台之分,可以是Wind
2008-04-24 16:58:00
809
原创 精通Silverlight——12.3.1 添加键盘事件
与定义鼠标事件一样,可以在XAML中定义键盘事件,也可以在后台代码中定义键盘事件。下面的XAML代码为Canvas定义了二个键盘事件,代码如下所示。 xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xa
2008-04-24 16:41:00
948
原创 精通Silverlight——12.3 处理键盘事件
Silverlight提供了一系列键盘事件,允许开发人员响应键击动作,在Silverlight中,有两种基本的键盘事件:q keyDown:当键盘按键被按下时触发。q keyUp:当键盘按键松开时触发。
2008-04-24 16:00:00
731
原创 精通Silverlight——12.2.6 拖动编程示例
本节举一个例子,该示例与本书第六章的示例程序大致相同,示例程序运行效果如图所示。示例中的两个图形分别包含在两个子画布中,这两个子画布共享相同的事件处理器,分别是MouseLeftButtonDown、MouseMove和MouseLeftButtonUp事件,XAML代码如下所示。 xmlns="http://schemas.microsoft.com/c
2008-04-24 15:58:00
2681
1
原创 精通Silverlight——12.2.5 鼠标托动编程
在本书第六章的6.1.4小节中,曾经介绍过一个拖动画布的示例,该示例使用鼠标事件控制对象的拖动。由于拖动操作是一个连续的过程,因此需要分别处理MouseLeftButtonDown、 MouseLeftButtonUp 和 MouseMove。通常一个拖放操作需要处理如下所示的三类事件:q 选定对象:在对象上单击鼠标左键选中该对象,通过实现MouseLeftButtonD
2008-04-24 15:57:00
1020
原创 精通Silverlight——12.2.4 事件冒泡机制
事件冒泡机制是指子对向沿着对象层次结构向上传递事件,比如在一个画布中包含一个矩形,如果为矩形和画布都定义了MouseMove事件,那么当在矩形上移动鼠标时,矩形会将MouseMove事件传递到他的父对象,那么父对象也会触发MouseMove事件。下面举一个示例,该示例运行效果如图所示。在该图中有两个矩形,当鼠标在矩形上移动时,可以看到同时也触发了Canvas的MouseMo
2008-04-24 15:55:00
1365
原创 精通Silverlight——12.2.3 鼠标动画示例-简单相册
下面使用鼠标事件创建一个简单的相册示例,该示例的运行效果如图12.3所示。当鼠标悬停在某副图片上时,会自动放大该图片,鼠标离开时,则恢复图片大小。该示例的思路很简单,在画布上,分别使用三个Image对象引用了三幅图片,并使用ScaleTransform变换图片大小。然后为每幅图片定义了一两个动画,一个是鼠标进入的动画,另外一个是鼠标移出时的动画。在鼠标事件中,当鼠标移到图片上时
2008-04-24 15:53:00
1772
原创 精通Silverlight——12.2.2 MouseEventArgs参数
鼠标事件有个很重要的MouseEventArgs类型参数,通过调用这个类的方法和属性,可以获得很多与鼠标相关的信息。MouseEventArgs提供了Ctrl和Shift这两个布尔属性,在处理鼠标事件时通过对这两个布尔属性的取值以判断用户是否按下了Ctrl或Shift键。MouseEventArgs还提供了几个非常有用的方法,其中比较常用的是GetPosition方法,用于获取当前
2008-04-24 15:51:00
2144
1
原创 精通Silverlight——12.2.1 鼠标事件
派生自UIElement的对象大都具有如下五个鼠标事件,每种事件都具有一个object和一个MouseEventArgs类型的参数。object类型的sender参数表示触发鼠标事件的对象,MouseEventArgs类型的参数在不同的事件中则有不同的参数值。q MouseMove事件:当鼠标位置改变时触发,MouseEventArgs参数包含输入信息。q
2008-04-24 15:48:00
835
原创 精通Silverlight——12.2 处理键盘和鼠标事件
与用户的交互式操作基本上就是响应鼠标与键盘事件,Silverlight中所有派生自UIElement的对象大都具有键盘与鼠标事件,比如移动和单击鼠标动作。
2008-04-24 15:46:00
696
原创 精通Silverlight——12.1.1 声明 x:Class, 定义事件处理
精通Silverlight——12.1.1 声明 x:Class, 定义事件处理使用VS2008创建Silverlight项目时,x:Class自动被指定为:项目名称.Page,程序集被指定为ClientBin/项目名称.dll,通常不需要更改默认的设置。Loaded属性指定了Page类的Loaded事件名称,在后置代码中,自动创建了一个Page_Loaded事件名称,与Loaded的属
2008-04-24 15:45:00
776
原创 精通Silverlight——12.1 在x:Class中创建事件处理
所有的事件定义都必须位于由x:Class属性指定的类中。比如前面的代码,x:Class被定义为xClass.Page类,那么所有的事件的定义都必须被定义在这个Page类中。
2008-04-24 15:36:00
616
原创 精通Silverlight——第12章 创建交互式应用程序
当使用VS2008创建一个新的Silverlight项目后,可以从XAML文件的根Canvas属性设置中看到一些默认的设置,例如下面的代码所示。 xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xa
2008-04-24 15:35:00
666
原创 精通Silverlight——11.4 小结
本章简要介绍了如何在使用.NET开发Silverlight应用程序,首先通过一个简单的示例程序,介绍了使用.NET开发Silverlight应用程序的流程。接下来讨论了Silverlight的程序集,以及如何在VS2008中查看程序集,本章还讨论了Silverlight应用程序的异常和错误处理。最后,本章介绍了如何调试Silverlight应用程序。下一章将介绍如何创建交互式的Silv
2008-04-24 15:25:00
655
原创 精通Silverlight——11.3.2 XAML代码的错误处理
有时候会遇到一些XAML代码解析错误,比如当XAML代码出现错误时,还是能够通过编辑,但是在解析该XAML代码时会弹出一些奇怪的错误提示,如图11.13所示。图11.13 XAML解析错误由上图可以发现,这是一个JavaScript应用程序错误,在HTML文件的后置JavaScript文件中,createSilverlight方法用于创建Silverlight插件,该方法提供了一
2008-04-24 15:13:00
948
原创 精通Silverlight——11.3.1 添加应用程序异常
为Silverlight添加异常与其他的VS项目差不多,同样使用Try/Catch/Finally语法。下面的示例程序在画布上绘制一个矩形,用来代表一个按钮,当单击该按钮时,触发一个异常,并在一个TextBlock中显示异常信息,XAML代码如下所示。 xmlns="http://schemas.microsoft.com/client/2007" x
2008-04-20 18:47:00
790
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人