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 :

Injecter dynamiquement une fenetre dans une autre


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Juin 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 1
    Par défaut Injecter dynamiquement une fenetre dans une autre
    Bonjour à tous,

    Voici ma question, je souhaite ouvrir une fenêtre dans ma fenêtre principale.
    Je m'explique : en windows form, il est possible par l'utilisation de l'objet "Panel" de venir injecter une autre fenêtre.cs dans le panel, qui lui même est détenu par la MainWindow. Ceci me permettait de changer l'affichage par de simple clic sur différents boutons.

    A présent, je souhaite le faire en WPF, mais l'objet Panel n'existe plus, tout comme la fonction "Controls.Clear()" ou "Controls.Add(NomWindows)"

    Voici le code que j'utilisais en windows form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    panel1.Controls.Clear();
                Form4 formI = new Form4();
                formI.TopLevel = false;
                formI.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
                formI.Size = this.Size;
                formI.BringToFront();
                formI.Visible = true;
                panel1.Controls.Add(formI);
    Et puis en version WPF j'ai ce code pour l'instant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Window1 formI = new Window1();
    formI.Topmost = false;
    formI.WindowStyle=WindowStyle.None;
    formI.Activate();
    formI.Visibility= System.Windows.Visibility.Visible ;
    Le problème de ce code étant que la fenêtre agit comme une pop-up, ce que je ne veux pas !



    Merci d'avance

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    Il va falloir être un peu plus clair sur ce que tu veux...

    Un fenêtre en WinForm ne pouvait être contenu dans une autre WinForm que par une fenêtre et uniquement dans le cadre des interfaces MDI.

    Dès lors que tu parle de Panel... on ne parle plus de fenêtre et une équivalence existe en WPF...
    La raison pour laquelle le panel n'existe plus c'est que WPF ne fonctionne pas du tout de la même façon que Winform...

    Il faut désapprendre tout ce que tu crois savoir sur les UI winforms pour apprendre correctement WPF.

    En WPF on va parler de layout, et particulièrement des conteneurs tels que StackPanel qui va empiler les controles l'un après l'autre, dans le sens vertical ou horizontal selon ce que tu règle comme comportement.
    On a des DockPanel utilisé pour "docker" tout et n'importe quoi et utiles avec les toolbars.
    On a des Canvas (canevas) qui permettent d'agencer tes composants à l'unité de positionnement prêt les uns par rapports aux autres, avec une disposition qui ne change pas en fonction des changement de tailles des contenants.
    Puis on va avec les Grilles qui vont permettre une disposition en grille, en profondeur...

    Je te suggère de créer un exemple de ce que tu veux obtenir rapidement grace à un Expression Blend de Microsoft pour voir le code XAML généré, il te donnera un aperçut des différents objets et controles, et layout disponible nativement et en plus grace au wpf toolkit si tu n'utilise pas dotnet 4.0.

    Sous WPF on aura tendance à ne pas faire intervenir différentes fenêtres physiques mais tout faire dans la même, sauf lorsqu'on a besoin de fenêtres modales ou de toolbox par exemple, car on peut pratiquement tout faire dans une seule et unique fenêtre contrairement aux winforms.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 25
    Par défaut
    Bonjour,

    je ne suis pas sur d'avoir compris à 100% ce que tu recherche à faire.
    Mais j'avais un problème similaire au tiens et j'ai utilisé les UserControl pour plus ou moins intégrer un élement dans un autre, puis le rendre visible/invisible par simple clic sans devoir faire appel à une nouvelle WinForm

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  2. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  3. insertion d'une fenetre dans une fenetre
    Par DeeVoiD dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 04/02/2009, 12h56
  4. Problème affichage d'une fenetre dans une fenetre
    Par zuzuu dans le forum Windows
    Réponses: 10
    Dernier message: 03/10/2007, 15h26
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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