在Wince 中使用IXRResourceDictionary加载全局资源App.xaml

本文介绍在WinCE平台上利用Silverlight技术开发应用程序的过程。包括创建SDK、建立项目、设计XAML资源、C++代码实现等步骤。

   阅读本DEMO假定您对Silverlight,WinCe C++(本人初学)开发有一定了解。由于涉及到一些项目的隐私效果图就不上了,参考资料http://msdn.microsoft.com/en-us/library/ee503954.aspx
1、创建SDK:这个比较简单找到先前我们创建编译成功的的OS项目在SDKs目录右键添加新的SDK设置相关属性,编译SDK成功后,安装生成的**SDK.msi至开发机器便可针对此版本SDK进行相关应用开发!
2、使用安装的SDK建立项目,开发wince应用
   2.1:建立项目:
     2.1.1:新建一个Win32智能设备项目

http://hi.youkuaiyun.com/attachment/201007/24/2243869_12799366977Cf0.jpg
     2.1.2:选择我们自己编译的SDK“SDK_Silverlight”

http://hi.youkuaiyun.com/attachment/201007/24/2243869_12799366988ZvZ.jpg
     2.1.3:新建一个空白windows应用程

http://hi.youkuaiyun.com/attachment/201007/24/2243869_1279936698j22e.jpg
     2.1.4:添加项目运行时依赖xamlruntime.lib

http://hi.youkuaiyun.com/attachment/201007/24/2243869_1279936699y373.jpg
     2.1.5:启动SDK模拟器设置Storage card共享目录以方便进行调试和效果查看

http://hi.youkuaiyun.com/attachment/201007/24/2243869_1279936700Dk4D.jpg

3、在Blend中设计和准备用到的XAML资源
 3.1:设计按纽样式及全局画刷资源App.XAML参考:

 
  3.2:设计Page.XAML主页面参考:

 
 4、详细C++代码实现(资源可以使用外部和嵌入式两种我采取了前者外部加载资源的方式):
   4.1:设置一些资源数据全局变量
 
   4.2:初使化我们会使用到的图片资源路径信息:
 
   4.3:加载我们会使用到的图片资源

 
    4.4:为Application加载全局资源App.XAML
      
    4.5:为App.xaml中的ImageBrush设置图片信息

 
     4.6:设置窗体样式加载主页面Page.xaml文件

 
   4.7:为Page.xaml中使用到的图片控件设置图片信息

 
   4.8:显示窗体在模拟器上运行:
 
本文结束,下一篇将介绍一下如何注册鼠标事件实现图片按钮的拖拽和缩放。

### WPF 中 App.xaml.cs 定义的变量是否为全局变量 在 WPF 应用程序中,`App.xaml.cs` 文件中的定义可以通过特定方式实现全局访问的效果。以下是详细说明: #### 1. **App.xaml.cs 的作用** `App.xaml.cs` 是 WPF 应用程序的入口点之一,它继承自 `System.Windows.Application` 类。该文件通常用于初始化应用程序资源、处理全局事件(如 `Application_Startup` 和 `Application_Exit`)以及定义全局可用的对象或变量[^5]。 #### 2. **定义全局变量的方式** 在 `App.xaml.cs` 中定义的变量可以通过以下方式实现全局访问: - **静态属性**:将变量定义为静态属性,使其在整个应用程序生命周期内均可访问。 ```csharp public partial class App : Application { public static string GlobalVariable { get; set; } } ``` 通过这种方式定义的变量可以在任何地方通过 `App.GlobalVariable` 访问[^3]。 - **实例属性**:如果需要非静态的全局变量,可以利用 `Application.Current` 属性访问当前应用程序实例。 ```csharp public partial class App : Application { public string InstanceVariable { get; set; } } ``` 在其他地方可以通过以下方式访问该变量: ```csharp var value = ((App)Application.Current).InstanceVariable; ``` 这种方法利用了 `Application.Current` 的全局可达性,从而实现对实例属性的访问[^3]。 #### 3. **全局变量的限制** 尽管可以通过上述方法实现全局变量的效果,但需要注意以下几点: - **生命周期管理**:全局变量的生命周期与应用程序一致,因此需要确保其值在适当的时间进行初始化和清理。 - **线程安全性**:如果多个线程可能同时访问或修改全局变量,需要考虑线程安全问题。 - **设计模式**:过度依赖全局变量可能导致代码耦合度增加,建议结合单例模式或其他设计模式优化全局状态管理。 #### 4. **示例代码** 以下是一个完整的示例,展示如何在 `App.xaml.cs` 中定义全局变量并在其他地方使用: ##### App.xaml.cs: ```csharp public partial class App : Application { public static string StaticGlobalVariable { get; set; } = "Static Value"; public string InstanceGlobalVariable { get; set; } = "Instance Value"; } ``` ##### 其他地方访问: ```csharp // 访问静态全局变量 string staticValue = App.StaticGlobalVariable; // 访问实例全局变量 string instanceValue = ((App)Application.Current).InstanceGlobalVariable; ``` #### 5. **与 App.xaml 的关系** `App.xaml` 文件主要用于定义应用程序级资源和样式。例如,在 `App.xaml` 中定义的资源可以通过 `Application.Resources` 在整个应用程序中共享[^1]。这些资源与 `App.xaml.cs` 中定义的变量类似,都具有全局可达性。 ##### 示例: ```xml <Application x:Class="WpfApp.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Application.Resources> <Style TargetType="Button"> <Setter Property="Background" Value="LightBlue"/> </Style> </Application.Resources> </Application> ``` 上述定义的按钮样式将在整个应用程序中生效。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值