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

Windows Presentation Foundation Discussion :

Affichage d'une fenêtre WPF à partir d'une app console


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 89
    Par défaut Affichage d'une fenêtre WPF à partir d'une app console
    Bonjour,

    Je démarre et je bloque sur une connerie...

    J'ai un ConsoleApplication (une exe avec un console) C# basique ainsi qu'un fichier UserControl définissant ma classe MonControlUser (XAML) dans ma solution.

    Je veux tout simplement dans le main de ma ConsoleApplication créer l'objet MonControlUser.

    Ben j'y arrive pas.

    Merci de votre aide.

    Pascal

  2. #2
    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,

    Comment t'y prends tu et quel est ton erreur exactement ?

  3. #3
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Ton application console référence bien les assemblys nécessaires à WPF ? Quel est le message d'erreur ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 89
    Par défaut Résolu...
    C'est bon, j'ai trouvé...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       System.Windows.Application monApplication = new System.Windows.Application();
       monApplication.Run(new IHMAccueil());
    Mais pour lancer un fenêtre comme cela, il faut que ma classe (en XAML) dérive de Window pour pouvoir l'appeler via l'objet System.Windows.Application et sa méthode Run().

    Au début, j'avais des soucis car je créais une projet UserControl (WPF)... C'était le seul Item (en XAML) que je pouvais ajouter à mon projet... Et je ne savais pas lancer cet Item à partir de mon main...

    Donc j'ai remplacé dans le XAML le <UserControl ..... /> par <Window ......>

    Si vous avez une solution plus simple, n'hésitez pas !

    Voiloù !!!

    Pascal

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 89
    Par défaut Cependant
    Voici mon code à présent :

    Une classe (C# + XAML) (un Canvas comportant un bouton) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        public partial class IHMAccueil : Window
        {
            public IHMAccueil()
            {
                InitializeComponent();
            }
     
            public void monButton_Click(object sender, RoutedEventArgs e)
            {
            }
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <Window x:Class="Main_CSharp.IHMAccueil"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Height="150" Width="400" WindowStartupLocation="CenterScreen" WindowState="Normal" WindowStyle="ToolWindow" Background="CornflowerBlue">
        <Canvas Name="monWrapPanel">
     
            <Button Name="monButton" Width="325" FontFamily="Verdana" FontWeight="Bold" Foreground="CornflowerBlue" HorizontalAlignment="Center" VerticalAlignment="Center" Height="30" Canvas.Left="27" Canvas.Top="39" Click="monButton_Click">Cliquer pour accéder au Menu Principal</Button>
     
        </Canvas>
    </Window>
    et un Main permettant d'afficher cette fenêtre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            [STAThread]
            static void Main(string[] args)
            {
                System.Windows.Application monApplication = new System.Windows.Application();
     
                monApplication.Run(new IHMAccueil());
            }
    J'ai une nouvelle classe IHM2 (XAML + C#) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        public partial class IHM2 : Window
        {
            public IHM2 ()
            {
                InitializeComponent();
            }
        }
    J'aimerais que quand je clique sur le bouton de mon IHMAccueil, la fenêtre IHM2 s'affiche...

    J'ai fait dans le C# de la classe IHMAccueil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            public void monButton_Click(object sender, RoutedEventArgs e)
            {
                IHM2 monIHM2 = new IHM2();
            }
    Mais rien ne se passe... Pourquoi ? Faut il utiliser à nouveau un Application.Run() ? J'ai essayé mais j'ai le message suivant :

    Exception non gérée : System.InvalidOperationException: Impossible de créer plusieurs instances System.Windows.Application dans le même AppDomain.

    Merci ce votre aide...

    Pascal

  6. #6
    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
    Il te reste à faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            public void monButton_Click(object sender, RoutedEventArgs e)
            {
                IHM2 monIHM2 = new IHM2();
                monIHM2.Show(); 
            }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/05/2012, 14h35
  2. Affichage d'une fenêtre MFC à partir d'une DLL
    Par damdam78 dans le forum MFC
    Réponses: 1
    Dernier message: 25/11/2009, 10h24
  3. Actualiser une fenêtre parent à partir d'une popup
    Par scorian dans le forum WebDev
    Réponses: 1
    Dernier message: 22/08/2007, 09h50
  4. Controler une fenêtre a partir d'une autre fenêtre
    Par Invité dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 24/08/2006, 21h21
  5. Afficher une Fenêtre MDI à partir d'une DLL
    Par FredericB dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/12/2005, 16h58

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