0
    private void LoadImageList()
    {
        string filepath = Application.StartupPath + @"\Content\Textures\Tiles\PlatformTiles.png";
        Bitmap tileSheet = new Bitmap(filepath);
        int tilecount = 0;

        for (int y = 0; y < tileSheet.Height / TileGrid.TileHeight; y++)
        {
            for (int x = 0; x < tileSheet.Width / TileGrid.TileWidth; x++)
            {
                Bitmap newBitmap = tileSheet.Clone(
                    new System.Drawing.Rectangle(
                        x * TileGrid.TileWidth,
                        y * TileGrid.TileHeight,
                        TileGrid.TileWidth,
                        TileGrid.TileHeight),
                        System.Drawing.Imaging.PixelFormat.DontCare);

                imgListTiles.Images.Add(newBitmap);
                string itemName = "";
                if (tilecount == 0)
                {
                    itemName = "Empty";
                }
                if (tilecount == 1)
                {
                    itemName = "White";
                }
                listTiles.Items.Add(new ListViewItem(itemName, tilecount++));
            }
        }
    }

PlatformTiles.png を新しいものに更新するだけで、次にプログラムを実行したときにロードされません。int tilecount = 0;にブレークポイントを配置しました。そしてそれは決してそれに達しません。それ以降のすべてのものもロードされません。何か案は?

4

3 に答える 3

0

ファイルがコンテンツ プロジェクトの一部であり、[ビルド アクション] が [コンパイル] に設定されている場合、実行時にそのフォルダーにあるファイルには .png 拡張子がないため、ビットマップは作成されません。コンテンツ アセットには、バイナリ形式にコンパイルされているため、.xnb 拡張子が付いています。Build Action を None に変更し、Copy to Output Direction を新しい場合は Copy に変更します

于 2012-08-20T13:40:39.793 に答える