Pergunta

Eu tenho um aplicativo WinForms com um GIF animado em um PictureBox. É uma animação de carregamento, mostrado enquanto um BackgroundWorker faz algum processamento em outro segmento. Eu carregar a imagem, definindo a propriedade Image e anima por conta própria.

Tudo está bem até que eu minimizar e restaurar o aplicativo. Em que ponto, a imagem pára animador e mostra apenas o que quer quadro era passado sobre.

Note que:

  • A discussão de fundo ainda funciona muito bem e nenhum dos "negócios" do aplicativo é afetado.
  • GIFs Subsequentemente-exibido animados fazer funcionar bem (a menos que o aplicativo é minimizado novamente).

Alguém sabe o que causa esse problema? Quaisquer soluções alternativas?

Foi útil?

Solução

Aparentemente, o PictureBox pára explicitamente animação sempre que a janela é obscurecida. O PictureBox deve ser invalidado e redesenhado quando a janela não é mais obscurecida, mas o evento de invalidação não acontece automaticamente no Vista.

Uma solução é adicionar um temporizador para o formulário que invoca PictureBox.Invalidate () a cada 500ms. Isso irá garantir que a animação não pára nunca.

Consulte este MSDN enrosque para obter mais informações.

Outras dicas

Eu não sei o que ele faz, mas o que se você detectar quando é minimizada e cada vez que é restaurada exibi-la novamente?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top