DotNet Compact Framework中位图资源的使用学习笔记
2005-04-07 21:52
633 查看
问题:使用Visual Studio.net 2003编写一个在WinCE下运行的应用程序时,需要使用位图资源,于是使用下面的代码:Using System.Drawing;…..Bitmap picBitmap = new Bitmap(“pica.bmp”);……Pica.bmp就是我想要使用的位图文件,我将这个文件附加到工程目录中,编译通过,启动调试,但是发现虽然在部署这个应用程序的时候已经将pica.bmp复制到了WinCE Emulator中和应用程序同样的目录下,但是程序运行到这个位置总会抛出一个“FileNotFoundException”,而同样的代码在Windows应用程序中却运行的好好的。分析:由于各方面的经验不足,到现在也没想清楚。解决:1、 观察一下VS.net是怎样使用位图资源的。新建一个Smart Device的Windows Form应用,新建一个窗体:Form1,在窗体上拖入一个PictureBox:pbShow,将pbShow的Image属性设置为你想要的位图。然后看Form的源代码,发现问题所在了:System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(LoginForm));this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
原来VS.net是通过.net资源文件来使用个中位图资源的。假设我们的项目名叫做SmartDeviceApplication1,命名空间叫做SmartApp那么在目录SmartDeviceApplication1/obj/DEBUG目录下你能够找到一个叫做SmartApp.Form1.resources的.net资源文件。这个文件是由.net自动生成的,但是因为我们要使用自己的资源,所以我们要学会编辑和使用这个文件。2、 编辑*.resources文件VS.net中自带了一个资源编辑器,叫做RESEDITOR,通常在/Program Files/Microsoft Visual Studio .NET 2003/SDK/v1.1/Samples/Tutorials/resourcesandlocalization/reseditor这个目录下(可能会由于Visual Studio.NET的版本的不同而不同吧),这个目录下将包含build.bat和ResEditor.cs这两个文件,ResEditor.cs是资源编辑器的源码,微软没有提供编译好了的程序,怎么说也算是支持了一把开源了。打开开始菜单 | 程序 | Microsoft Visual Studio .NET 2003 | Visual Studio .NET工具 | Visual Studio .NET 2003命令提示,定位到上面的目录,运行build.bat就能够编译ResEditor.cs这个文件了。运行ResEditor,就能够编译我们想要的资源了。界面如图:
这样的界面也算是很简洁了,使用也很简单:在Add下拉框中选择你要添加的资源类型,我们这里选的是:System.Drawing.Bitmap,在后面的TextBox里给他取一个名字,比如叫ForTest,点右边的Add按钮,
单击右边的…按钮,浏览到要添加的图片就可以了。从文件里另存为.resources的文件。3、 使用资源文件将编译好的文件附加到你的工程中,右键单击工程名,添加 | 添加现有项,选择资源文件,比如叫做MyRes.resources,我们在程序中需要ResourceManager来使用文件中的位图。ResourceManager还能用来解决软件的国际化问题,我们在这里就不介绍了。System.Resources.ResourceManager rm = new ResourceMagager(“SmartApp.MyRes”, System.Reflection.Assembly.GetExecutingAssembly());Bitmap picBitmap = (Bitmap)rm.getObject(“ForTest”);如果在资源文件中添加了string,我们就能直接使用getString了,而不需要用到强制类型转换。这里的SmartApp是我们的程序的命名空间,MyRes是文件名,记住不要带后缀。这样就能正确地使用我们的位图资源了!^_^
原来VS.net是通过.net资源文件来使用个中位图资源的。假设我们的项目名叫做SmartDeviceApplication1,命名空间叫做SmartApp那么在目录SmartDeviceApplication1/obj/DEBUG目录下你能够找到一个叫做SmartApp.Form1.resources的.net资源文件。这个文件是由.net自动生成的,但是因为我们要使用自己的资源,所以我们要学会编辑和使用这个文件。2、 编辑*.resources文件VS.net中自带了一个资源编辑器,叫做RESEDITOR,通常在/Program Files/Microsoft Visual Studio .NET 2003/SDK/v1.1/Samples/Tutorials/resourcesandlocalization/reseditor这个目录下(可能会由于Visual Studio.NET的版本的不同而不同吧),这个目录下将包含build.bat和ResEditor.cs这两个文件,ResEditor.cs是资源编辑器的源码,微软没有提供编译好了的程序,怎么说也算是支持了一把开源了。打开开始菜单 | 程序 | Microsoft Visual Studio .NET 2003 | Visual Studio .NET工具 | Visual Studio .NET 2003命令提示,定位到上面的目录,运行build.bat就能够编译ResEditor.cs这个文件了。运行ResEditor,就能够编译我们想要的资源了。界面如图:
这样的界面也算是很简洁了,使用也很简单:在Add下拉框中选择你要添加的资源类型,我们这里选的是:System.Drawing.Bitmap,在后面的TextBox里给他取一个名字,比如叫ForTest,点右边的Add按钮,
单击右边的…按钮,浏览到要添加的图片就可以了。从文件里另存为.resources的文件。3、 使用资源文件将编译好的文件附加到你的工程中,右键单击工程名,添加 | 添加现有项,选择资源文件,比如叫做MyRes.resources,我们在程序中需要ResourceManager来使用文件中的位图。ResourceManager还能用来解决软件的国际化问题,我们在这里就不介绍了。System.Resources.ResourceManager rm = new ResourceMagager(“SmartApp.MyRes”, System.Reflection.Assembly.GetExecutingAssembly());Bitmap picBitmap = (Bitmap)rm.getObject(“ForTest”);如果在资源文件中添加了string,我们就能直接使用getString了,而不需要用到强制类型转换。这里的SmartApp是我们的程序的命名空间,MyRes是文件名,记住不要带后缀。这样就能正确地使用我们的位图资源了!^_^
相关文章推荐
- WMI005-WMI学习笔记(五)——Using WMI with the .NET Framework(.NET框架使用WMI)
- 【Pro ASP.NET MVC 3 Framework】.学习笔记.4.MVC的主要工具-使用Moq
- Dot Net FrameWork 4.0 学习笔记(1)
- Dot Net FrameWork 4.0 学习笔记(5)
- Windows Mobile使用.NET Compact Framework开发Winform时如何Dispose资源
- Dot Net FrameWork 4.0 学习笔记(4)
- 关于dotnet framework 的一些学习资源(MS WebCast)
- webcast(.Net Compact Framework 数据访问技术杂谈)学习笔记
- Dot Net FrameWork 4.0 学习笔记(2)
- Dot Net FrameWork 4.0 学习笔记(3)
- Dot Net FrameWork 4.0 学习笔记(6)
- WPF and Silverlight 学习笔记(二十七):基本图形的使用(2)Path和位图操作
- [ASP.NET学习笔记之四]数据集的使用方法和技巧
- Asp.Net Ajax 学习笔记17 使用Authentication Service
- Quartz.NET笔记(十) 配置、资源使用以及SchedulerFactory
- 在 .NET Compact Framework 2.0 中使用序列化
- [ASP.NET学习笔记之二]数据集和数据库的同步-DataAdapter的使用
- 【Pro ASP.NET MVC 3 Framework】.学习笔记.1.主要语言特性
- Android Framework学习笔记 -- aidl的使用
- [收集]DotNetNuke(DNN)学习和应用资源合集