Silverlight3学习笔记(2):Silverli..
时间:2010-09-13 来源:周金桥
在上一篇中讲述了如何安装适合自己需要的VS2010以及相关帮助文档,由于在VS2010中帮助文档的查询方式不同于以往的VS,在上篇中还介绍了H3Viewer这个软件,它是一个免费的软件,安装它之后可以在安装了VS2010帮助文档之后以类似于以前查看MSDN的方式查看帮助文档。除此之外,在上一篇还比较了几种常见的RIA技术,比如Java Applet、Flash及Silverlight,以及它们与普通Windows应用程序在运行机制上的区别和限制。在这一篇开始涉及到Silverlight了,这一篇主要是讲Silverlight的开发工具VS2010以及XAML语言等知识。
创建Silverlight项目
当我们创建一个Silverlight项目时会提示是否创建一个承载项目,如下图所示:
由于在VS2010中已经直接支持创建ASP.NET MVC2的Web项目,所以承载Silverlight的Web项目类型有三种:ASP.NET Web应用程序项目、ASP.NET 网站及ASP.NET MVC Web应用程序项目。ASP.NET Web应用程序项目可以提供与Visual Studio .NET 2003 Web 项目相同的 Web 项目语义,它的编译模型与 Visual Studio .NET 2003 编译模型类似。项目中的所有代码文件(独立文件、代码隐藏文件以及类文件)将被编译成单个程序集并存储在 Bin 目录中。由于编译会创建单个程序集,因此可以指定程序集名称和版本等属性。如果我们仅仅是开发Silverlight的话,这个可以随便选择一种类型,以便能在网页中查看Silverlight的运行效果。
VS2010界面
创建Silverlight项目成功之后可以看到如下的界面:
在VS2010中可以直接从工具箱中向Silverlight界面中拖控件。在开发ASP.NET时一个页面会分为两部分.aspx.cs和.cs,前者包含了设计代码,后者则是包含业务逻辑代码,和ASP.NET开发一样,Silverlight的项目中每个控件或者页面也是分为.xaml和.xaml.cs,.xaml代码也是包含设计代码,.xaml.cs则是包含业务逻辑代码。在每个Silverlight项目中默认会有一个app.xaml文件,这个文件有点类似于WinForm项目中的program.cs类,包含了项目启动时的设置,在创建一个Silverlight项目成功后app.xam.cs的代码如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Animation;
- using System.Windows.Shapes;
- namespace SilverlightDemo1
- {
- public partial class App : Application
- {
- public App()
- {
- this.Startup += this.Application_Startup;
- this.Exit += this.Application_Exit;
- this.UnhandledException += this.Application_UnhandledException;
- InitializeComponent();
- }
- private void Application_Startup(object sender, StartupEventArgs e)
- {
- this.RootVisual = new MainPage();
- }
- private void Application_Exit(object sender, EventArgs e)
- {
- }
- private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
- {
- // 如果应用程序是在调试器外运行的,则使用浏览器的
- // 异常机制报告该异常。在 IE 上,将在状态栏中用一个
- // 黄色警报图标来显示该异常,而 Firefox 则会显示一个脚本错误。
- if (!System.Diagnostics.Debugger.IsAttached)
- {
- // 注意: 这使应用程序可以在已引发异常但尚未处理该异常的情况下
- // 继续运行。
- // 对于生产应用程序,此错误处理应替换为向网站报告错误
- // 并停止应用程序。
- e.Handled = true;
- Deployment.Current.Dispatcher.BeginInvoke(delegate { ReportErrorToDOM(e); });
- }
- }
- private void ReportErrorToDOM(ApplicationUnhandledExceptionEventArgs e)
- {
- try
- {
- string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace;
- errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n");
- System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight Application " + errorMsg + "\");");
- }
- catch (Exception)
- {
- }
- }
- }
- }
可以在Application_Startup()方法中通过设置RootVisual属性来指定启动那个页面作为Silverlight的启动界面。
关于XAML
在Silverlight中使用XAML作为Silverlight的界面设计语言,XAML是一种特殊的XML格式(就像XHTML也是一种特殊的XML格式一样),现在我们不用太关注它,经过以后的练习就会慢慢理解XAML语言的特点。下面是一个普通的XAML页面代码:
相关阅读 更多 +