Exibir imagem inicial

Como podemos mostrar a imagem de boot quando meu aplicativo é iniciado como cada software como o Photoshop, vs palavra etc? Eu planejei colá-lo no formulário e, em seguida, mostrá-lo, mas não há barra azul superior que vem tem controles etc qualquer idéia /

Você realmente quer uma canvas inicial? Há muitos exemplos na rede, por exemplo: http://www.codeproject.com/KB/cs/prettygoodsplashscreen.aspx

Se você está procurando a maneira mais simples, você pode usar o excelente suporte embutido do .NET Framework para canvass iniciais. Você terá que deixar de lado quaisquer medos irracionais que você possa ter de include algo com o nome “Visual Basic” em um aplicativo C #, mas desta forma você vai economizar de ter que rolar sua própria solução personalizada e se preocupar com coisas como multi- enfiando, invocando e tudo isso. Tudo compila até o mesmo IL no final de qualquer maneira. Veja como isso funciona:

  1. Adicione uma referência ao Microsoft.VisualBasic ao seu projeto.

  2. Adicione um novo formulário (chamado algo como SplashForm ) para servir como sua canvas inicial.

  3. Para torná-lo mais parecido com uma canvas inicial adequada, defina propriedade FormBorderStyle do formulário para “Nenhum” e sua propriedade StartPosition para “CenterScreen”. Você pode adicionar controles ou imagens a este formulário que deseja exibir na canvas inicial deste formulário.

  4. Adicione o seguinte código ao seu arquivo Project.cs :

     using System; using System.Windows.Forms; using Microsoft.VisualBasic.ApplicationServices; namespace WindowsFormsApplication1 { static class Program { [STAThread] static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); new SplashScreenApp().Run(args); } } public class SplashScreenApp : WindowsFormsApplicationBase { protected override void OnCreateSplashScreen() { this.SplashScreen = new SplashForm(); this.SplashScreen.ShowInTaskbar = false; this.SplashScreen.Cursor = Cursors.AppStarting; } protected override void OnCreateMainForm() { //Perform any tasks you want before your application starts //FOR TESTING PURPOSES ONLY (remove once you've added your code) System.Threading.Thread.Sleep(2000); //Set the main form to a new instance of your form //(this will automatically close the splash screen) this.MainForm = new Form1(); } } } 

Se você quiser fazer algo extravagante como criar uma canvas inicial transparente no estilo do Adobe Photoshop, você pode adicionar uma imagem PNG de canal alfa ao arquivo Recursos do projeto e, em seguida, adicionar o seguinte código ao formulário da canvas inicial, substituindo splashImage por o caminho para o recurso de imagem incorporado:

 protected override void OnPaintBackground(PaintEventArgs pevent) { Graphics g = pevent.Graphics; g.DrawImage(splashImage, new Rectangle(0, 0, this.Width, this.Height)); } protected override void OnPaint(PaintEventArgs e) { //Do nothing here } 

Para que isso funcione, certifique-se de que o buffer duplo esteja desativado ou você obterá um plano de fundo preto em seu formulário. Não há realmente nenhuma razão para duplicar uma canvas inicial de qualquer maneira.

Você pode remover todas as barras azuis, etc, através this.FormBorderStyle = FormBorderStyle.None no seu Form_Load() .

Então, se eu fosse você, criaria um formulário de tamanho específico e, em seguida, definiria o seguinte em Form_Load() ou diretamente no código gerado pelo designer:

 this.FormBorderStyle = FormBorderStyle.None; this.StartPosition = FormStartPostition.CenterScreen; 

Agora você tem uma canvas inicial como muitos outros aplicativos – tudo que você ainda tem que fazer é escrever o código para todo o material visível ou não, etc 🙂

O WPF 3.5 e acima, na verdade, foi construído em suporte a canvas inicial, para renderização mais rápida da canvas inicial e muito (muito) menos farejante com o código. Veja esta página para detalhes.

Você está escrevendo um WinForms ou um aplicativo WPF? Você terá que definir diferentes propriedades dependendo do tipo que você escreve. Se você estiver escrevendo um aplicativo WPF, você pode adicionar os atributos WindowStyle = “None” e ResizeMode = “NoResize” ao elemento de nível superior da janela no XAML. O primeiro removerá a barra de título com os botões minimizar, resize e fechar, enquanto o segundo removerá a borda ao redor do formulário.

Agora, você tem um formulário sem borda que pode ser modificado para criar uma canvas inicial, se desejar, ou simplesmente adicionar sua imagem de boot. Se você não quiser que seu formulário padrão seja exibido, adicione também os atributos Background = “Transparent” e AllowsTransparency = “True”. O primeiro definirá a cor do plano de fundo como transparente, enquanto o segundo permitirá que seu programa pareça transparente. Agora, você pode adicionar qualquer imagem em qualquer forma e o usuário verá apenas essa imagem na boot do programa.

PS Certifique-se de carregar outro formulário uma vez que a canvas de boot tenha sido mostrada por um determinado período de tempo ou uma vez que os methods que deveriam “carregar” as coisas retornam o controle.

Coisas bem simples !!