0

趣味のチェスプロジェクトに取り組んでいます。ピース画像を読み込むと、画像が見つからないという例外がスローされます。私はこれが当てはまらないことを知っています、それは以前に機能しました、そして私がそれらをメソッドにロードするときそれは機能します。それらは正しい場所にあり、ファイルパスは正しいです。最初、コードはImageクラスの代わりにBitmapクラスを使用しましたが、同じ結果が得られました。

クラス定義で画像をロードする主な理由は、ほとんどの画像を数回使用し、すべての画像が1回だけロードされるようにしたいためです。

これはクラス定義と最初のボタンを示していますが、画像はすべてのピースにロードされます。

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を生成するため、コンパイル時に問題(画像が存在しないなど)が検出されることです。

また、希望する「画像を1回読み込む」動作が得られます

于 2012-09-05T22:40:56.397 に答える