Publicado em C#, Programação, WPF

Splash Screen e Janela de login – C# WPF Application

post

Neste artigo vamos aprender a criar um “splash screen” para a nossa aplicação C# WPF.

Apresento quatro exemplos muito simples, que não esgotam este assunto, mas que permitem rapidamente conseguir o efeito do splash screen.

#1 – Alterando a propriedade “Build Action” para “SplashScreen“.

Este será o método mais simples, embora o menos interessante.

Basta adicionar uma imagem à solução e alterar a propriedade “Build Action” de “Resource” para “SplashScreen“.

splash01

#2 – Criando uma janela para o efeito

Neste caso vamos instanciar a classe Window e criar algum tipo de interação.

Será necessário pressionar o botão “OK” para avançar.

splash02

#3  – Transformar o splash screen numa janela de login

No exemplo 3 é necessário fornecer os dados “gt” e “123” para poder abrir a aplicação.

Este cenário é bastante limitado pois os dados de acesso estão no próprio código.

splash03

using System.Windows;

namespace splash03
{
    /// <summary>
    /// Interaction logic for splashWindow.xaml
    /// </summary>
    public partial class splashWindow : Window
    {
        MainWindow w = new MainWindow();
        public splashWindow()
        {
            InitializeComponent();
        }

        private void loginButton_Click(object sender, RoutedEventArgs e)
        {
            if(username.Text=="gt" && password.Password=="123")
            {
                this.Close();
                w.Show();
            }
            else
            {
                MessageBox.Show("Dados incorretos.", "ERRO!", MessageBoxButton.OK, MessageBoxImage.Error);
                Application.Current.Shutdown();
            }
        }
    }
}

#4  – Semelhante ao anterior mas os utilizadores autorizados constam de uma base de dados

Neste caso teremos que inserir previamente os utilizadores a testar na base de dados. Apenas esses poderão fazer login com sucesso.

Forneço a base de dados juntamente com o código fonte.

splash04Acrescentei alguns elementos à interface para não ficar igual ao anterior.

splash04

using System.Windows;
using MySql.Data.MySqlClient;
using System.Data;
using System.Configuration;

namespace splash04
{
    /// <summary>
    /// Interaction logic for splashWindow.xaml
    /// </summary>
    public partial class splashWindow : Window
    {
        MainWindow w = new MainWindow();
        public splashWindow()
        {
            InitializeComponent();
            username.Focus();
        }

        private void loginButton_Click(object sender, RoutedEventArgs e)
        {
            //Ligação à Base de Dados MySql
            MySqlConnection ligacaoBD = new MySqlConnection(ConfigurationManager.ConnectionStrings["stringDeLigacaoDB"].ConnectionString);

            //Fazer o login
            try
            {
                DataTable dataTable = new DataTable();
                ligacaoBD.Open();
                MySqlCommand comandoMySQL = new MySqlCommand(string.Format("SELECT * FROM splash04.user WHERE userUsername = '{0}' AND userPassword = '{1}';", username.Text, password.Password), ligacaoBD);
                comandoMySQL.ExecuteNonQuery();
                MySqlDataAdapter da = new MySqlDataAdapter(comandoMySQL);
                da.Fill(dataTable);
                if (dataTable.Rows.Count == 0)
                {
                    MessageBox.Show("'username' ou 'password' incorretos.", "ERRO!", MessageBoxButton.OK, MessageBoxImage.Error);
                    Application.Current.Shutdown();
                }
                else
                {
                    this.Close();  //Encerra a janela de login
                    w.Show();      //Abre a janela da aplicação
                }
            }
            catch (MySqlException ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                ligacaoBD.Close();
            }
        }
    }
}

Os exemplos podem ser descarregados aqui:

 

Anúncios

Uma opinião sobre “Splash Screen e Janela de login – C# WPF Application

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s