Запустите throguh visual tree и установите для всех изображений значение null.
Я видел тонны нитей с утечкой памяти при использовании изображений. Итак, будет ли хорошей идеей просто иметь общую функцию, своего рода GC, которая будет работать в NavigatingFrom, находить все изображения (даже в шаблонах виртуализированных списков) и устанавливать для них значение null?
1 ответ
Решение
Вот помощник для перебора всех изображений вашей страницы:
public IEnumerable<Image> GetAllImage(DependencyObject root)
{
var count = VisualTreeHelper.GetChildrenCount(parentElement);
for (int i = 0; i < count; i++)
{
var child = VisualTreeHelper.GetChild(parentElement, i);
if (child is Image)
{
yield return (Image)child;
}
foreach (var image in GetAllImage(child))
{
yield return image;
}
}
}
Вы можете просто вызвать его с корнем вашей страницы в качестве параметра, и он должен вернуть вам все изображения.