0

当我加载棋子图像时,我正在从事一个爱好国际象棋项目,它会引发无法找到图像的异常。我知道情况并非如此,它之前已经工作过,当我以一种方法加载它们时它确实有效。它们位于正确的位置并且文件路径正确。起初,代码使用 Bitmap 类而不是 Image 类,结果相同。

我在类定义中加载图像的主要原因是我多次使用大多数图像,并且我想确保每个图像只加载一次。

这显示了类定义和第一个按钮,但是为每个部分加载了一个图像。

public partial class PieceButton : Button
{
    private static readonly Image blackBishop = Image.FromFile("images/black_bishop.gif");

稍后,当一块移动到按钮时,我会将加载的图像应用到按钮。该类继承 Button 因为默认按钮行为非常有用。图像是 .gif,因为这样按钮背景仍然可见(字段为白色或黑色)。

所以我的问题是:如何在类定义中正确加载这些图像?

4

1 回答 1

1

考虑将图像作为资源添加到 Resources.resx 并让 Visual Studio 担心生成代码以实际将基础数据转换为 Image 对象。这有许多优点,最大的优点是任何问题(例如不存在的图像)都会在编译时被捕获,因为 VS 会提前为您生成 Properties.Resources.whatever。

您还将获得所需的“加载图像一次”行为

于 2012-09-05T22:40:56.397 回答