Bonjour à tous,

J'ai un problème de conception en c# WPF. Je vais essayer de vous expliquer mon "problème.

J'ai une première Form ou un utilisateur saisis un nom d'utilisateur et un mot de passe.

L'utilisateur clique sur le bouton "Connecter" et là je voudrais:

Que la fenêtre courante se ferme.
Que ma fenêtre 2 s'ouvre, et une fois la fenetre affichée une animation (WPF) s'éxécute.
Je voudrais que pendant cette animation, un traitement s'éffectue ( une vérification d'authenticité via service web).
Si authentification ok, alors on ferme la fenetre courante et on va sur ma form 3, sinon, on ferme la fenetre courante et retourne sur la fenetre 1.

Je me doute que ce genre de traitement passe par des threads.

J'ai éssayé ceci :

Lors du clique sur le bouton "Connecter" (-> Sur ma 1ere Form)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
 private void button1_Click(object sender, RoutedEventArgs e)
        {
            this.Hide();
            Connection ConnectionForm = new Connection();
            ConnectionForm.Show();
 
            Application app = System.Windows.Application.Current;
            if (app != null)
                app.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Background,
            (Action)delegate
            {
 
                CDailyReport DailyReport = new CDailyReport(editUser.Text, editPass.Password);
                if (DailyReport.LoginDivalto() == true)
                {
                    SaisieRapport FormSaisieRapport = new SaisieRapport();
                    FormSaisieRapport.ShowDialog();
                }
                else
                {
                    MessageBox.Show("Echec d'authentification : utilisateur inconnu.", "Erreur d'authentification", MessageBoxButton.OK, MessageBoxImage.Hand);
                }
 
            });
 
        }
Le problème est que l'animation se met en marche une fois le traitement éffectué.

Mon animation est codé en XAML. Devrais-je la coder en c# et la mettre dans un thread ? Suis-je sur la bonne voix ? Merci à tous

Cordialement,

Nixeus