Silverlight应用程序的项目结构
点击次数:26 次 发布日期:2008-11-06 07:56:26 作者:源代码网
|
无论是Silverlight 1.0还是1.1版本,一个Silverlight项目总是包含以下几种文件: 1、嵌入Silverlight应用程序的html文件。 2、用来执行Silverlight应用程序载入工作的JavaScript文件。 3、定义和描述应用程序界面的XAML文件。 如果是.NET的项目,界面描述中所定义的新类型都包含在程序集(assembly)文件中。 我们可以用Microsoft Expression Blend 2 (目前最新的预览版本是September Preview)或者Visual Studio 2008 Beta2 (需安装好Silverlight Tool Alpha)来创建一个新.NET的项目。创建成功后,我们就可以看到一个Silverlight的.NET项目包含了如下的目录结构: References目录 查看该目录,我们可以看到其中包含了许多(.dll)文件,这些文件定义了项目中所引用的各托管类型。如果我们要使用其他自定义的类型,就可能需要手动 添加包含该类型定义的.dll文件。若Silverlight插件中没有包含项目所引用的某些程序集文件,则应用程序用户需要下载这些程序集文件到本地。 Page.xaml 项目默认的主界面的XAML描述文件。 Page.xaml.cs每个xaml文件之后都有一个对应的.NET语言文件。由于我们创建的是C#项目,所以其对应的文件为.cs文件。这个文件 对.xaml文件中的所引用的.NET类型做了定义。通过编译之后,项目会生成程序集文件,供.xaml文件引用,且该程序集文件会随 Silverlight应用程序一起下载到用户本地。 Silverlight.js 该文件包含了运行 Silverlight应用程序之前所必需的各种操作,主要检查用户是否安装了符合版本需求的Silverlight。如果没有安装,则 Silverlight应用程序所在的页面将会显示图标,提示用户先安装插件。这里我们不建议Silverlight的开发设计人员改变该.js文件的内 容。 TestPage.html(Blend 2中创建的文件名为Default.html) 该文件为项目的默认主页,文件中引入了Silverlight的脚本文件来载入Silverlight应用程序。 TestPage.html.js(Blend 2中的文件名为Default_html.js) 该文件中定义了TestPage.html中调用的CreatSilverlight()方法来载入Silverlight应用程序。 让我们再具体的看一看其中一些文件所包含的内容: TestPage.html 以下是引用片段: <html> <head><title>Silverlight Project Test Page </title><script type="text/javascript" src="http://dotnet.e800.com.cn/articles/2007/927/Silverlight.js"> </script><script type="text/javascript" src="http://dotnet.e800.com.cn/articles/2007/927/TestPage.html.js"> </script><style type="text/css"><!--设置应用程序在html页面中显示的大小,也可以用百分比表示,设置为100%则应用程序为自适应大小-->. silverlightHost { width: 640px; height: 480px; }</style></head><body><!--以下的ID用来标示DIV,尤其当页面总有多个Silverlight实例时,这个ID就成为了标 示每个Silverlight应用程序的重要标志--><div id="SilverlightControlHost" class="silverlightHost" ><script type="text/javascript">createSilverlight(); </script></div></body></html> TestPage.html.js 以下是引用片段: //creatSilverlight函数用来执行载入Silverlight应用程序的操作及相关属性function createSilverlight(){Silverlight.createObjectEx({//指定了初始化载入的应用程序页面source: "Page.xaml", parentElement: document.getElementById("SilverlightControlHost"),id: "SilverlightControl",properties: {width: "100%",height: "100%",version: "1.1",enableHtmlAccess: "true"},events: {}}); // 下面的函数是默认将键盘焦点集中在Silverlight应用程序上document.body.onload = function() {var silverlightControl = document.getElementById("SilverlightControl"); if (silverlightControl)silverlightControl.focus(); }} 软件开发网 www.mscto.com Page.xaml 以下是引用片段: <! --Canvas是一个包含了各种控件和元素的容器,每个Silverlight应用程序都有一个XAML的根文件, 每个XAML文件的根都是一个Canvas容器,且只能有一个作为根元素的Canvas容器--><Canvas x:Name="parentCanvas"xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" <!--指定当Load事件发生时所要载入的方法-->Loaded="Page_Loaded" <!--指定该.xaml文件中的托管类进入点,以及所涉及到的引用(程序集)的位置, 一般项目编译生成的程序集文件都位于项目中的ClientBin文件夹中-->x:Class= "SilverlightProjectStructure.Page; assembly=ClientBin /SilverlightProjectStructure.dll"Width="640"Height="480"Background="White"> </Canvas> 注意:由于Silverlight 1.1还处于Alpha版本,.NET语言中关于Silverlight的一些API可能会与将来的正式版本中有些出入,但是大多数基本的东西还是不变的。 源代码网推荐 源代码网供稿. |
