Silverlight里面有个App.xaml和App.xaml.cs,是干什么的,用途是什么,怎么和它传递参数呢?
使用它里面的public参数很简单,假设在MainPage.xaml.cs你可以这样访问:
(Application.Current as App).YourPublicParam
同样,在Silverlight Class Library类库项目中你也可以用上面的方法访问App里面的变量,因为Application.Current是application全局的。
App.xaml来源
App.xaml和App.xaml.cs存在于Silverlight和WPF项目中,它来源于System.Windows.Application类库,如果熟悉Winform开发的就应该对这个东西比较熟悉。当Silverlight Application启动的时候,顺序是这样的:
- 没有 Main() 方法
- 启动 App 构造器
- 把 Application_Startup 事件handler绑定到App.Startup属性
- 把Application_Exit 事件handler绑定到App.Exit 属性
- 把Application_UnhandledException事件handler绑定到UnhandledException 属性
- 触发InitializeComponent
- Application_Startup
- 创建新的 Page 对象实例
- 把 App.RootVisual 指向这个Page对象
- InitializeComponent
- 调用Application.LoadComponent, 传递Uri 对象到 App.xaml
App.xaml用途
- 定义全局资源:我们可以把Application级别的资源放在这里,用Application.Resources属性访问,常用的有styles, data templates,control templates。
- 全局事件处理:Startup, Exit 和UnhandledException.
- 全局引用Application.Current
- 指定RootVisible: RootVisual 用来设置Silverlight启动控件,这个属性在 Startup 事件中设置.
- 本地安装application:使用Install 方法你可以让用户在浏览器外本地安装application
- 检查更新:本地安装的时候可以用CheckAndDownloadUpdateAsync 方法检查.xap文件是否最新