Обновление изображения окна WPF из меню, но не во время цикла
Ладно, это настоящий скребок
Если я выбираю пункт меню, который заставляет изображение, которое составляет все окно (writeableBitmap), рисовать на нем несколько пикселей, он делает это и отображается правильно.
Однако, если я добавлю цикл while (пустьскажем, для 5 циклов) к тому же методу рисунок на растровом изображении НЕ ОТОБРАЖАЕТСЯ до тех пор, пока цикл не будет завершен, а затем правильно отобразится 5-е перерисованное растровое изображение.
Так есть ли какое-тоавтоматическое обновление что происходит с окном, когда элемент меню выбран, но пропускается в цикле while?
Подробнее Это прекрасно работает (приносит вчистый» изображение, рисует некоторые вещи на нем, отображает его):
// This brings in a 'clean' image
writeableBitmap = new WriteableBitmap(CleanVegMap);
image.Source = writeableBitmap;
// This makes a bunch of draws on the bitmap
DrawDinos2d();
Это, однако,уходит' в течение 10 секунд и затем отображает только последнее (т. е. 5-е) изображение:
int z = 0;
while (z < 5){
z++;
// This brings in a 'clean' image
writeableBitmap = new WriteableBitmap(CleanVegMap);
image.Source = writeableBitmap;
// This makes a bunch of draws on the bitmap
DrawDinos2d();
}
Новая идея: возможно ли, что как-то 5 'обращается» writeableBitmaps кэшируются в памяти, каким-то образом системой?
Пробовал с помощью Dispatcher (как показано ниже):
Dispatcher.Invoke((Action)delegate
{
writeableBitmap = new WriteableBitmap(CleanVegMap);
image.Source = writeableBitmap;
DrawDinos2d();
});
То же самое (уходит на 10 секунд, а затем отображает только последнее изображение.
Еще одна подсказка: я просто помещаю MessageBox в цикл внизу каждого цикла и, как я как-то подозревал, это 'выведено» перерисованный экран правильно. Как-то:
System.Windows.MessageBox.Show("Glarp!");
этот вызовпроснулся' система. Опять какие-нибудь идеи?