SilverLight3.0 系列之二, 创建新项目

本文介绍如何在 Visual Studio 2008 中搭建 Silverlight 3.0 的开发环境,并创建一个简单的 HelloWorld 工程。文章详细解释了 Silverlight 项目的结构和各个文件的作用。

在前一篇文章, 我们已经搭建好了silverlight3.0的开发环境, 现在是时候创建一个经典的“Hello World”项目,让我们来看下Silverlight 模板给我们生成了哪些东西?

我们使用Visual Studio 2008的“New Project” 向导来创建silverlight工程, 默认选择C#和.Net Framework 3.5。如图所示, 你会看到3种类型的silvelight项目,

Silverlight Application Silverlight Class Library Silverlight Navigation Application

在这里, 我们选择Silverlight Application 。

image

在点击OK按钮后, 我们会看到一个对话框,在这里,我们可以选择如何安置我们的silverlight工程,因为silverlight是基于Web的技术,它必须在某个Web页面里才能运行。默认情况下,visual studio会选择“Host the Silverlight application in a new Web site”,如果你选择默认方式创建工程,在生成的解决方案里会包含2个工程,一个是silverlight, 另一个是Asp.Net。如果你选择取消的话,VS只仅仅生成一个工程,位于Bin目录下面,包含一个Test页面, 当你运行这个工程时,test.html会启动,同时在该页面上会显示你的silverlihgt程序。
image

工程结构

如果我们一切使用默认选项, 生成的解决方案就会如下图所示:

image

在这里, 我们主要关注SilverlightApplication1里的东西,将其各项展开,如下图:

image

AppManifest.xml, silverlight程序清单,这个文件描述了跟项目有关的所有DLL和程序的入口,在默认生成的项目中, 刚开始的时候,这个文件是空的,但如果你build了工程,你就会发现在Bin/Debug或者Bin/Release目录下生成了一个AppManifest.xaml,打开AppManifest.xaml,其中只列了一个DLL-“SilverlightApplication1.dll”,这个DLL会被包含在.xap文件中。

我们可以将AppManifest.xaml看做silverlight运行时的启动文件,它表明了哪些程序集应该被加载,哪个程序集提供入口方法。

AssemblyInfo.cs, 主要用来设定生成的程序集的一些参数。

App.xaml, App.xaml/App.xaml.cs 定义了Silverlight程序的入口, 打开App.xaml.cs, 你会看到App类, 该类继承于System.Windows.Application(位于System.Windows.dll).
App的构建函数
1 App.Startup事件委托与方法Application_Startup绑定
 2 App.Exit事件委托与方法Application_Exit绑定
 3 App.UnhandledException事件委托与方法Application_UnhandledException绑定
4 调用InitializeComponent()

Application_Startup()方法:
1 实例化Page对象
2 设置App.RootVisual为Page对象

InitializeComponent()方法:
  调用Application.LoadComponent(位于App.g.cs),并传递一个指向App.xamlUri对象做为参数。

MainPage.xaml,在Silverlight中,做为默认的启动页面,我们可以把想显示的任意内容放在这里,如果我们想改变启动页面,可以修改App.RootVisual的值。

MainPage类继承自System.Windows.Controls.UserControl
image

像App类一样, MainPage类同样也有一个InitializeComponent方法,右键点击“InitializeComponent()” , 选择“Go To Definition”, 我们就能在Page.g.cs中看到另外部份的MainPage类,
image

在MainPage.xaml中, 默认包含一个Grid元素,命名为“LayoutRoot”,通过FindName方法,MainPage找到这个Grid对象并赋给LayoutRoot属性。

待解决问题:

1 System.Windows.Application.LoadComponent 主要作用?

2 LayoutRoot属性作用?

转载于:https://www.cnblogs.com/zhaojin/archive/2011/02/12/1952819.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值