, поскольку я довольно новичок в C# и WPF. Я просто не могу понять, как это сделать. У меня есть форма, которая должна показать 151 изображение (все спрайты 1 покемона 1) в форме. То, как я сделал это сейчас, состоит в том, что он показывает одно и то же изображение в 151 раз вместо всех изображений только один раз. Код, который я написал для этого выглядит следующим образом:Несколько изображений из папки
public partial class PokeGame : Window
{
BitmapImage carBitmap = new BitmapImage(new Uri("pack://application:,,,/Images/All_Sprites/001.png", UriKind.Absolute));
{
InitializeComponent();
int imgCount = 151;
int left = 0;
int top = 0;
List<Image> imageList = new List<Image>();
for (int i = 0; i < imgCount; i++)
{
if(i % 10 == 0)
{
if (i != 0)
{
top += 175;
left = 0;
} else
{
top = 0;
left = 0;
}
}
Image img_ding = new Image();
img_ding.Source = carBitmap;
img_ding.Height = 150;
img_ding.Width = 150;
img_ding.Margin = new Thickness(left, top ,0 ,0);
imageList.Add(img_ding);
left += 175;
}
int j = 0;
foreach (Image img in imageList)
{
imageCanvas.Children.Add(img);
j++;
}
}
Как вы можете видеть, что есть, вероятно, много места для улучшения моего кода. Однако мой вопрос: как я могу сделать это так, чтобы он не отображал одно и то же изображение 151 раз, но все изображения (sprite001.png, sprite002.png, sprite003.png и т. Д.)?
Вы звоните 'img_ding.Source = carBitmap;' 151 раз в цикле. Итак, каково ваше ожидание? Кроме того, вы должны использовать ItemControl вместо того, чтобы программно добавлять элементы управления Image на Canvas. – Clemens
Вздох. Теперь у вас есть три ответа, сообщающие вам то же самое, все они все еще имеют избыточный «UriKind.Absolute», но никто не показывает, как использовать ItemControl. Я напишу позже, если вам интересно. Ваш код позади упадет до одной строки. – Clemens
Спасибо большое за предложение.Сейчас у меня есть решение и, вероятно, попробую другие предложения, а также для тренировочных целей. Кроме того, я исправил img_ding.Source = carBitmap; теперь. Спасибо за комментарий! –