Pergunta

Eu segui os passos descritos em Como adicionar uma tela inicial para um aplicativo WPF para adicionar uma tela inicial para a minha aplicação WPF. Quando eu iniciar o aplicativo, a imagem inicial é mostrado, então a janela principal aparece, e os fades imagem respingo de distância.

Meu problema é que quando a janela principal aparece, aparece no topo da imagem do respingo. Então, quando a imagem respingo começa a desaparecer, a imagem inicial aparece ao topo novamente. O resultado final é que a imagem respingo desaparece por uma fração de segundo como as principais aparece a janela.

Como posso forçar a janela principal a aparecer sob a imagem inicial, de modo que a imagem inicial não desaparece?

Foi útil?

Solução

Este não é um comportamento padrão, você deve ter alguns isso é código foca manualmente a janela principal?

Pode ser mais fácil apenas para desligar o fade manualmente com um pouco de código como este:

_splash = new SplashScreen("LoadingScreen.png");

_splash.Show(false);

_splash.Close(TimeSpan.Zero);

Outras dicas

Em .NET 4.0 um sobrecarga foi adicionado à mostra método que permite definir o WS_EX_TOPMOST estilo da janela na janela de tela de abertura. Mostrar a tela inicial no código como este:

SplashScreen splash = new SplashScreen("SplashScreen.png");
splash.Show(autoClose: true, topMost: true);

Eu chamo isso a partir do método

protected override void OnStartup(StartupEventArgs e)

em App.xaml.cs.

"SplashScreen.png" é, naturalmente, o identificador para a sua imagem respingo embutido em recursos do aplicativo.

Não sei se isso vai ajudar, mas se você definir o proprietário da tela do respingo ao formulário atual, então isso deve talvez fazer o truque?

_splash.Owner = this;

Caso contrário, você pode olhar aqui:

Tela de abertura Exemplo

Isto pode ajudar também.

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