我使用的是C#3.5和Windows Forms(如果它很重要,则使用Telerik components)。如何获得一个按钮,以三种(或N ..)种不同语言使用三种不同的图片(一种用于空闲,一种用于鼠标悬停,一种用于点击)?Windows窗体中图像资源的本地化
当我添加一个资源图像(例如,一个JPEG文件)时,我可以使用资源管理器来获取它,一切都很好。我还可以添加另一个图像(,同时使用不同的名称),然后更改文件的语言并更改图片。
现在的问题: 如何将每种语言的按钮图像更改为正确的图像,如果我不能给它们相同的名称(resource.resx中的egajpg,resources-foo.resx中的a.jpg等)。
我认为在代码中检查当前的文化并且然后使用OnMouseEnter/Leaves/Down中的图片资源名称实现三张图片之间的切换并不现实。
由于平均应用程序有100多个按钮必须有一个简单易用的方式做到这一点,我只是想不出(或者找...)...
问题是,当我添加第一个图像时,让我们说Resource.resx的“flag.png”,一切都很好。然后我去另一个resx文件(例如Resource.foo-BAR.resx),并尝试添加“flag.png”文件,但我得到一个错误消息:“一个文件的名称......”\ flag .png“alreay存在。你想替换它吗?“同样的消息,如果我将它添加为现有文件或者如果我创建一个新的图像... –
如果你看看你的Visual Studio解决方案,你会看到,除非你添加到你的文件资源已经在解决方案中,它会创建一个副本,因此您需要通过为每个语言版本指定一个唯一的名称来避免冲突,例如“flag.en-US.png”和“flag.fr -FR.png“,或者先在他们自己的语言子文件夹(例如”en-US \ flag.png“和”fr-FR \ flag.png“)中将它们添加到您的解决方案中 - 确保它们位于您的Visual Studio中项目,否则Visual Studio会尝试复制它们,并会给你你提到的错误) – Clafou