用Visual Studio 2008进行Silverlight开发(7)

在Page_Loaded()子程序里,为第二个Timeline增加一个新的duration:

            

以下是引用片段:
Public Sub Page_Loaded(ByVal o As Object, ByVal e As EventArgs)
'' Required to initialize variables
InitializeComponent()
''---display the clock---
Me.Timeline1.Duration = New Duration(New TimeSpan(0, 0, 1))
Me.Timeline1.Begin()
''---rotate the clock---
Me.Timeline2.Duration = New Duration(New TimeSpan(100))
Me.Timeline2.Begin()
End Sub

这里,你设置了Timeline2的间隔为100毫秒(重载了TimeSpan对象构造器)。每100毫秒,Timeline2的Completed事件触发,这里你调用PerformTransformation()子程序:

            

以下是引用片段:
Private Sub Timeline2_Completed( _
ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles Timeline2.Completed
PerformTransformation()
Me.Timeline2.Begin()
End Sub

子程序使用RotateTransform对象来完成一个对象的变化。这里你使用它来在每个时刻旋转按钮1度。

以下是引用片段:
Private Sub PerformTransformation()
''---use a RotateTransform object to perform transformation---
Dim rt As New RotateTransform
''---define the transformation---
With rt
.Angle = degrees
.CenterX = 50
.CenterY = 50
End With
''---increment the degree of rotation---
degrees += 1
''---transform the button---
btnTime.RenderTransform = rt
End Sub

另外,当用户点击按钮时,按钮将会回到原来的位置,并且重新开始旋转:

            

以下是引用片段:
Private Sub btnTime_MouseLeftButtonDown( _
ByVal sender As Object, _
ByVal e As System.Windows.Input.MouseEventArgs) _
Handles btnTime.MouseLeftButtonDown
degrees = 0
PerformTransformation()
End Sub

图16显示了按钮旋转的效果图。

498)this.style.width=498;">
图16

部署Silverlight程序

当你的Silverlight程序完成之后,部署它就很容易了。对于一个产品环境,没有必要暴露你的被管理的代码的源代码。只要拷贝编译过的程序集到你的web服务器上即可。比如你可以拷贝你刚刚创建的程序集来看看这个过程有多简单。

首先,创建一个目录,如:C:\MyFirstSilverlightApp。

创建一个HTML页面Default.html,内容为:

            

以下是引用片段:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<!-- saved from url=(0014)about:internet -->
<head>
<title>Silverlight Project Test Page </title>

<script type="text/javascript" src="Silverlight.js"></script>
<script type="text/javascript" src="Default.html.js"></script>
<style type="text/css">
.silverlightHost { width: 640px; height: 480px; }
</style>
</head>

<body>
<div id="SilverlightControlHost" class="silverlightHost" >
<script type="text/javascript">
createSilverlight();
</script>
</div>
</body>
</html>

就像你看到的那样,你可以轻松的从TestPage.html中拷贝内容并将它粘贴到Default.html中。重要的部分用粗体标明了。

这个HTML文件引用了两个Javascript文件:Silverlight.js和Default.html.js。和刚才一样,你可以从VS2008的工程中拷贝过来并且改名。

缺省的,Default.html.js使用Page.xaml作为用户界面。这里,从VS2008工程中拷贝Page.xaml到C:\MyFirstSilverlightApp文件夹。

如果你查看Page.xaml,你将看到Silverlight程序被期望用来在ClientBin目录下发现编译程序集。编译的Dll名为OurFirstSilverlightProject.dll:

            

以下是引用片段:
<Canvas
xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Name="parentCanvas"
Loaded="Page_Loaded"
x:Class="OurFirstSilverlightProject.Page;
assembly=ClientBin/OurFirstSilverlightProject.dll"
Width="640"
Height="480"
Background="White"
&gtl
...

因此,在C:\MyFirstSilverlightApp,创建一个新的目录ClientBin,从VS2008的工程目录的ClientBin目录下拷贝编译后的Dll文件。

图17显示了C:\MyFirstSilverlightApp目录。就像你看到的一样,你无须部署你的VB程序代码,只是程序集。

498)this.style.width=498;">
图17

现在你可以配置C:\MyFirstSilverlightApp作为IIS的一个虚拟目录了。启动IIS(你可以使用inetmgr命令),右击Default Web Site链接,选择New | Virtual Directory…给它一个Silverlight的别名,指定C:\MyFirstSilverlightApp作为目录所在地。好的,完成了!

你可以使用URL来访问这个页面了:http://localhost/Silverlight/default.html.

你已经看到了使用VS2008创建Silverlight应用程序的过程。你使用XAML来定义Silverlight程序的用户界面,你可以使用VS2008,Expression Blend2或手写的方式来完成它。希望你从本文得到了灵感去深入了解Silverlight。

posted @ 2008-07-01 13:01  破罐摔出响  阅读(739)  评论(2编辑  收藏  举报