【发布时间】:2010-09-01 14:50:36
【问题描述】:
我在 Windows 窗体项目中的控件上使用的资源文件中有一些资源(在本例中为图像)。 Visual Studio 资源选择对话框对从资源文件中选择图像没有很好的支持,除非它们位于特定位置,但您可以直接编辑设计器文件,这样就可以了;应用程序可以正确编译和运行,而且 Windows 窗体设计器足够智能,不会弄乱我手工编辑的代码。
// in an assembly named ResourceConsumer
this.button1.Image = global::ResourceConsumer.Properties.Resources.Close32x32;
现在我想将这些资源移动到外部程序集,以便它们可以被多个应用程序使用。我可以设置一个程序集以毫无问题地公开其资源(只要我使用的是 Visual Studio 2008 或更高版本),这工作正常。当我更改设计器代码以从其新位置引用图像时,代码编译并正确运行,但现在 Windows 窗体设计器在生成代码时更改我的代码;它将图像的二进制文件嵌入到本地资源文件中并从那里引用它。
// ResourceProducer is an external assembly containing resources
this.button1.Image = global::ResourceProducer.Properties.Resources.Exit32x32;
由 Windows 窗体设计器更改为:
this.button1.Image = ((System.Drawing.Image)(resources.GetObject("button1.Image")));
Windows 窗体设计器似乎理解从同一个程序集中提取资源,而不是从外部提取资源。有什么方法可以让 Windows 窗体设计器允许我使用来自外部程序集的资源?
【问题讨论】:
标签: visual-studio winforms resources windows-forms-designer