0

画像のグリッドで画像 (私のヒーロー) を移動したい。移動先の廊下を削除し、そこにヒーロー イメージを配置すると、コードが正常に実行されます (ヒーローはグリッド内の唯一の一意のイメージです)。しかし、ヒーローの以前の場所に廊下の画像を配置すると、上記のエラーが表示されます。「corridorImg」という名前のグリッド内の子として、50 の他のコリドー イメージがあるためだと理解しています。

int newTileIndex = Image_Grid2.Children.IndexOf(heroImg) + map.mapWidth - 1;
int currentTileIndex = Image_Grid2.Children.IndexOf(heroImg);

Image_Grid2.Children.RemoveAt(currentTileIndex);
Image_Grid2.Children.RemoveAt(newTileIndex);

// Tried to solve issue by creating new Image by using clone of the corridor Image, but same exception
Image oldTileImage = new Image();
oldTileImage = corridorImg;             

Image_Grid2.Children.Insert(currentTileIndex, oldTileImage);
Image_Grid2.Children.Insert(newTileIndex, heroImg);
4

1 に答える 1

0

これにはMVVMを使用する必要があるという@HighCoreに同意します。

ただし、特定の問題は、実際にイメージを複製しなかったことです。新しいイメージを作成して、割り当てられた変数を上書きしただけです。最後から 2 番目の行では、元のコリドー Img を再挿入しています。単に oldTileImage と呼んでいます。イメージを完全に複製するには、そのプロパティをコピーする必要があります。画像ソースを使用している場合、次のようになります。

Image corridorImgClone = new Image();
corridorImgClone.Source = corridorImg.Source;
于 2013-03-05T18:06:20.013 に答える