//rightImages - FileInfo[]
//rightBitmaps - BitmapImage[]
rightImages = new DirectoryInfo("F:\\Images\\Right").GetFiles("*.png");
rightBitmaps = new BitmapImage[rightImages.Length];
for (int i = 0; i < rightImages.Length; i++)
{
rightBitmaps = new BitmapImage();
rightBitmaps.BeginInit();
rightBitmaps.UriSource = new Uri(rightImages.FullName);
rightBitmaps.EndInit();
}
currentRightImage = 0;
Help WPF, куда уходит память.
//RightPanelSprite - Image Control
//rightBitmaps - массив BitmapImage
RightPanelSprite.Source = rightBitmaps[currentRightImage];
Могу предположить, что проблема в использовании массива или в способе его использования. Покажите чуть больше кода, весь цикл.
Цитата: Sanila_san
Могу предположить, что проблема в использовании массива или в способе его использования. Покажите чуть больше кода, весь цикл.
Вот код который вызывается в конструкторе
Код:
В цикле меняется текущая картинка:
Код:
if (currentRightImage >= rightImages.Length - 1)
currentRightImage = 0;
else
currentRightImage++;
RightImageSprite.Source = rightBitmaps[currentRightImage];
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
Вот как сделал сейчас, все работает, но мне кажется не правильным то что каждая картинка загружается с диска (вместо того что бы их загрузить все сразу в память)
BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.UriSource = new Uri(rightImages[currentRightImage].FullName);
bmp.EndInit();
RightPanelSprite.Source = bmp;
currentRightImage = 0;
else
currentRightImage++;
RightImageSprite.Source = rightBitmaps[currentRightImage];
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
Вот как сделал сейчас, все работает, но мне кажется не правильным то что каждая картинка загружается с диска (вместо того что бы их загрузить все сразу в память)
BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.UriSource = new Uri(rightImages[currentRightImage].FullName);
bmp.EndInit();
RightPanelSprite.Source = bmp;
P.S.
Еще можно, как вариант, создать нужное количество Image Control'ов и менять им zIndex.