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