Inquiridor
Ajuda Splash Screen WPF C#?

Pergunta
-
Boa tarde pessoal. Fiz um programa e coloquei uma tela de carregamento e tá funcionando perfeitamente no C#, mas quando eu fui colocar esse mesmo código no WPF C# deu vários erros, mudei por causa personalização a mais nos programas criados nele, segue o código abaixo que utilizo no C#
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace AlphA { public partial class AlphA : Form { public AlphA() { InitializeComponent(); EfeitoTelaInicial(); } private void EfeitoTelaInicial() { Timer Tempo1 = new Timer(); float opacity = 0; Opacity = opacity; Tempo1.Interval = 30; Tempo1.Start(); Tempo1.Tick += delegate { this.Opacity = ++opacity / 100; if (opacity >= 100) { Tempo1.Stop(); TextosDaTelaInicial(); } }; } private void TextosDaTelaInicial() { Timer Tempo2 = new Timer(); int valor = 0; Tempo2.Interval = 50; Tempo2.Start(); Tempo2.Tick += delegate { if (valor == 0) {
label.text = "Iniciando o programa...";
} else if (valor == 10) { label.text = "Verificando os componentes..."; } else if (valor == 20) { label.text = "Verificando o ambiente..."; } else if (valor == 30) { label.text = "Verificando a internet..."; } else if (valor == 40) { label.text = "Concluindo..."; } else if (valor == 50) { label.text = "Aguarde..."; } else if (valor >= 60) { Tempo2.Stop(); Application.Exit(); } valor++; }; } } }
O que eu tenho que modificar no código para que ele funcione no WPF C#?
Obs: Se algum de vocês souberem de outro código que funciona com esses mesmos princípios só que melhor e mais eficiente, pode me passar também.
Fico no aguardo. Abraços a todos!
- Editado Lucas Solsa Silva quarta-feira, 19 de novembro de 2014 22:05
Todas as Respostas
-
Olá,
WPF é bem diferente do Win Forms. WPF e Win Forms são como ser fossem dois idiomas, Inglês e Português, respectivamente. Você não traduz literalmente de um pro outro, você traduz uma ideia. Só um exemplo ainda da parte das línguas: Se alguém espirra, no Brasil a gente fala Saúde!! Em inglês é God Bless You!! (Deus abençoe você). Se você traduzir literalmente seria Health(Saúde, mas essa palavra se refere ao ponto de vista físico). Agora para e pensa: o quão diferente é de uma língua pra outra, então você tem que começar a tentar traduzir a ideia e não o código literalmente, vai ser algo bem mais fácil...
Voltando á programação, o que você quer fazer exatamente? Pode postar uma imagem do resultado obtido no Win Forms, por favor?
Herbert Lausmann
-
Boa tarde Herbert Lausmann,
No método EfeitoTelaInicial();
Ele serve pra quando iniciar o programa ele inicie com a Opacity = 0% a 100% e logo depois ele inicia o segundo método.
TextosDaTelaInicial();
Aqui ele mostra vários textos numa Label, com um determinado tempo entre uma e outra.
E por ultimo ele fecha a janela do carregamento do programa e inicia a tela principal.
É exatamente esse resultado que quero se possível, ser feito no WPF C# ?
Fico no aguardo. Abraços!
- Editado Lucas Solsa Silva quarta-feira, 19 de novembro de 2014 17:52
-
Criei um projeto de uma Splash Screen e disponibilizei no meu blog. Provavelmente você terá que fazer algumas modificações para se adequar ao que você precisa, mas o conceito permanece o mesmo:
WPF Splash Screen | Herbert.Lausmann
Espero ter ajudado.
PS.: Sempre evito redirecionar as dúvidas do Fórum para outros meios de comunicação, como Facebook e etc. Porém nesse caso julguei que seria melhor, pois o WPF é divido em View (XAML) e Code Behind (C# ou VB.NET) o que iria acarretar em vários e vários trechos de código diferentes para inserir aqui. Sendo assim, não conseguiria fornecer uma resposta de qualidade apenas colando os códigos do Splash Screen, já que a criação do mesmo exige alterações em vários arquivos de códigos. Portanto, resolvi disponibilizar o projeto completo no link informado.
Herbert Lausmann
-
Caro Herbert Lausmann,
Baixei e fiz algumas modificações, coloquei outros textos e até ai tudo bem, mas não me agradou muito.
Queria se possível ser igual eu falei: Ele iniciaria com a Opacity de 0 a 100% e depois disso ele mostraria aqueles textos no LblStatus (label). Como na imagem abaixo!
Como mostra o texto "Verificando os componentes" ele mostraria os textos que te mostrei acima.
"Não se preocupe com o XML o design dele e como na imagem acima, o que preciso agora e do código mesmo."
Seria de grande, grandessíssima ajuda se me ajuda-se nessa parte de mostrar vários textos no LblStatus com um tempo de um segundo pra cada frase e depois ele fecharia essa janela e abriria a principal como no seu programa que baixei.
Alguém por favor me ajuda. Ficarei eternamente grato por isso.
Fico no aguardo. Abraços!
- Editado Lucas Solsa Silva quarta-feira, 19 de novembro de 2014 21:47