【发布时间】:2012-08-29 14:17:39
【问题描述】:
我正在处理一个爱好国际象棋项目,当我加载棋子图像时,它会引发无法找到图像的异常。我知道情况并非如此,它之前已经工作过,当我以一种方法加载它们时它确实有效。它们位于正确的位置并且文件路径正确。起初代码使用 Bitmap 类而不是 Image 类,结果相同。
我在类定义中加载图像的主要原因是我多次使用大多数图像,我想确保每个图像只加载一次。
这显示了类定义和第一个按钮,但是为每个部分加载了一个图像。
public partial class PieceButton : Button
{
private static readonly Image blackBishop = Image.FromFile("images/black_bishop.gif");
稍后,当一块移动到按钮时,我会将加载的图像应用到按钮。 该类继承 Button 因为默认按钮行为非常有用。 图像是 .gif,因为这样按钮背景仍然可见(字段为白色或黑色)。
所以我的问题是:如何在类定义中正确加载这些图像?
【问题讨论】:
-
你能把你加载到方法中的代码贴出来吗?
-
“它会抛出无法找到图像的异常。我知道不是这种情况” - 确定吗?我倾向于相信运行时。您意识到您正在从相对路径静态初始化此对象,对吗?
-
另外(这并不是为了回答这个问题,而是为您提供替代路径)您可能需要考虑将图像作为资源添加到 Resources.resx 中。如果您使用的是 Visual Studio,它比您在上面尝试做的要容易得多。
-
@Ed S,是的,这有关系吗?我假设基本路径始终是我的调试文件夹,我将图像复制到其中。我知道它有效的原因是因为它以前曾有效。我会尝试将图像添加到我的资源中。
-
在资源文件中添加图片是一个更好的解决方案。如果你回答这个问题,我会接受。加载图片:this.Image = Chess.Properties.Resources.white_bishop;