IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#]Lancer un userControl au SplashScreen


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 205
    Par défaut [C#]Lancer un userControl au SplashScreen
    Bonjour,



    voila j'ai recupéré un code pour utiliser un splashScreen lors du lancement de l'application WPF et le splashScreen est une Window (ce qui est top) et je voudrais lancer un userControl.cs "MainPage.xaml"

    donc dans mon App.xaml ma balise Application possède
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    StartupUri="Splash.xaml"
    et dans mon splash j'invoque une fonction qui doit lancer mon fichier xaml "MainPage.xaml"

    si c'était une window j'aurais fait :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                               MainWindow window = new MainWindow();
                               window.Show();

    Mais que faut-il faire pour un usercontrol ?

    Merci d'avance !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 19
    Par défaut
    Ton usercontrol doit être inséré dans une form. Pourquoi pas dans ta MainWindow ?

    à la limite, si tu ne veux voir que le contrôle sans les bordure de la fenêtre, tu fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    userControl.Dock =  DockStyle.Fill;
    MainWindow.FormBorderStyle = FormBorderStyle.None;
    et tu ne verra que le contrôle.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    @pierrev1 : ton code correspond à du Windows Form et non du WPF

    Ceci-dit l'idée de faire une fenêtre sans bordure est une idée à suivre.
    En WPF ça donnerait quelque chose comme :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <Window 
      ...
      WindowStartupLocation="CenterScreen" 
      WindowStyle="None" 
      AllowsTransparency="True" 
      Background="Transparent" 
      ShowInTaskbar="False" 
      >

    Sinon, j'aurai laissé la fenêtre principale en StartupUri et j'aurais lancé mon splashScreen dans l'événement Startup de l'application. Je dis ça car je me demande si en fermant ton splashScreen, tu ne vas pas tuer ta fenêtre principale...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 205
    Par défaut
    Bonjour,

    Merci pour votre intervention

    Sinon, j'aurai laissé la fenêtre principale en StartupUri et j'aurais lancé mon splashScreen dans l'événement Startup de l'application. Je dis ça car je me demande si en fermant ton splashScreen, tu ne vas pas tuer ta fenêtre principale...
    Comment fait on un appel à un userControl ?

    sur mon splashScreen j'ai mi le codeBehind suivant :

    Code c# : 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
    28
    29
    30
    31
    32
    		private void SplashLoaded(object sender, RoutedEventArgs e)
    		{
    			ThreadPool.QueueUserWorkItem(new WaitCallback(delegate(Object state)
    				{
    					LongOperationExecution();
    				}), null);
    		}
     
    		private void LongOperationExecution()
    		{
    			// Here, put the code which take a long time to execute
    			// BEGIN
    			int i = 0;
     
    			while (i < 50000)
    			{
    				i++;
    			}
    			// END
     
    			this.Dispatcher.BeginInvoke(DispatcherPriority.Send, new DispatcherOperationCallback(delegate(Object state)
    					   {
                                                                                   // code pour une windows
    						   //this.Hide();
                                                                                    //MainWindow window = new MainWindow();
                                                                                    //window.Show(); 
     
                                                                                   // mettre le code pour afficher le userControl à la place de visualiser le splashScreen
     
    						   return null;
    					   }), null);
    		}

    et dans mon starupUri j'ai mon SplashScreen et
    dans ce splashScreen, j'affiche la session Active Directory avec un cube 3d.

    si je remplace le commentaire dans le dispatcher par

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    this.Dispatcher.BeginInvoke(DispatcherPriority.Send, new DispatcherOperationCallback(delegate(Object state)
    {
                 new MainPage();
    	 return null;
     }), null);

    le userControl MainPage se charge mais il ne s'affiche pas...

    Une petite idée ?

    Merci d'avance !

Discussions similaires

  1. [WD16] Lancer un splashscreen durant un long traitement
    Par gardangel dans le forum WinDev
    Réponses: 8
    Dernier message: 27/04/2011, 17h32
  2. [VB6] Lancer un service, par exemple Sql Server
    Par fea dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/10/2002, 14h07
  3. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 12h15
  4. [Kylix] probleme pour lancer le shell
    Par miky dans le forum EDI
    Réponses: 5
    Dernier message: 13/08/2002, 09h39
  5. Réponses: 8
    Dernier message: 05/06/2002, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo