gaooc

---山无棱,天地合

  博客园 :: 首页 :: :: 联系 :: 订阅 :: 管理 ::

第一次学习Silverlight,写下自己的学习日记以加强对基础知识的掌握;

XAML支持扩展应用语言(eXtended Application Markup Language)。XAML包含XML用于Silverlight或WPF应用程序声明特定的用户界面。

.xap文件是Silverlight应用程序输出的压缩文件。.xap文件包括AppManifes.xaml、编译输出的Silverlight项目程序集(.dll)和Silverlight应用程序需要的资源文件。在.aspx页面和.html页面中可以通过<object>标签来加载.xap文件;".xap"文件使用标准的.zip压缩算法,减少客户端下载文件的大小。我们可以查看项目文件夹下的bin/debug文件夹,你可以看见一个叫"SilverlightTest.xap"的文件,重命名这个文件为"SilverlightTest.zip"并解压它,可以看见它包含项目输出的dll文件和AppManifest.xaml等文件,打开项目下的Properties文件夹,其中有一个AppManifest.xml文件,此文件定义了开发客户端应用的程序集。

App.xaml文件是用于Silverlight应用程序声明共享资源,像笔刷、各种样式资源等。此外、App.xaml的后置代码用来处理全局应用级事件,像Application_Startup,Application_Exit和Application_UnhandledException等(类似于asp.net应用程序中的Global.asax文件)。Visual Studio自动创建App.xaml文件,它会为少数几个事件创建事件处理程序,并提供默认事件处理代码。自己可以适当的修改这些代码;

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)
{
}
}

嗷嗷嗷。。。睡觉了。

posted on 2011-05-21 23:10  gaooc  阅读(713)  评论(0)    收藏  举报