今天先让我们从 Silverlight应用程序的.NET项目结构开始,看一下这样的一个项目中包含了些什么文件,这些文件分别是用来做什么的。了解这些内容有助于我们 将来根据自己的需要制作更为复杂的项目内容。在开始介绍之前,请务必安装Silverlight 1.1 Alpha Refresh。
无论是Silverlight 1.0还是1.1版本,一个Silverlight项目总是包含以下几种文件:
如果是.NET的项目,界面描述中所定义的新类型都包含在程序集(assembly)文件中。
我 们可以用Microsoft Expression Blend 2 (目前最新的预览版本是September Preview)或者Visual Studio 2008 Beta2 (需安装好Silverlight Tool Alpha)来创建一个新.NET的项目。创建成功后,我们就可以看到一个Silverlight的.NET项目包含了如下的目录结构:
让我们再具体的看一看其中一些文件所包含的内容:
<html>
<head>
<title>Silverlight Project Test Page </title>
<script type="text/javascript" src="Silverlight.js"></script>
<script type="text/javascript" src="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>
//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();
}
}
<!--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>
public partial class Page : Canvas
{
//载入应用程序时的初始化方法,该方法中包含了所有页面初始化是所要做的操作
public void Page_Loaded(object o, EventArgs e)
{
//初始化变量时,以下方法必不可少
InitializeComponent();
//接下来指定其他所需的初始化操作……
}
}