Изменение размера окна вынудит внутренние устройства сделать недействительными и перекрасить.Вы можете попытаться сделать недействительной форму, когда она загружена, чтобы заставить ее делать то же самое:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
this.Show();
this.Invalidate();
while (!AppMain.needClose)
{
System.Windows.Forms.Application.DoEvents();
DoThings();
}
}
Если вы не выполняете какую-то пользовательскую перекачку сообщений, то стандартный обработчик сообщений форм должен делать это в то время как циклвы.Возможно, вы обнаружите, что, поскольку вы перехватываете событие загрузки окна, вы прекращаете инициализацию от завершения.
Вызов DoEvents - это неприятный запах кода в моем опыте.Если вам нужно периодически что-то делать, лучше запускать его из таймера.