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 :

[WPF] Ajouter des UsersControls dans une Window


Sujet :

Windows Presentation Foundation

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 74
    Par défaut [WPF] Ajouter des UsersControls dans une Window
    Bonjour,

    J'ai créé plusieurs usercontrol et je cherche un moyen de les ajouter dynamiquement à ma fenetre principale. En gros je voudrais que quand on clique sur le menu on affiche le usercontrol correspondant dans la fenetre principale... Quel conteneur permet de faire cela ? De pouvoir changer sa "source" ou son "content" dynamiquement...
    Ensuite, savez vous comment peut on déplacer un usercontol déjà ouvert dans une autre partie d'une grille ? Je m'explique, j'ai une grid séparée en deux parties et je voudrais pouvoir déplacé un usercontrol ouvert d'un côté de l'autre côté...
    Merci de votre aide !

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Par défaut
    Tu pourrai peut être utiliser un TabControl ?

    Tes UserControl serait dans chaque TabItem. En jouant sur le template du TabControl et des TabItem, tu peux changer l'apparence pour faire le menu comme tu veux

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 74
    Par défaut
    Je vois ce que tu veux dire mais ce n'est pas exactement ce que je cherche dans la présentation du menu... Je cherche une présentation classique du menu avec en dessous une grille en deux parties contenant mes users control...

  4. #4
    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
    Citation Envoyé par jacpapac
    Je cherche une présentation classique du menu avec en dessous une grille en deux parties contenant mes users control...
    Dans ce cas, une Grid fera l'affaire (mais tout autre conteneur convient). Tu n'as qu'à ajouter ton userControl à ton conteneur via sa propriété Children ou Child. (Si c'est Children, il faudra d'abord supprimer le UserControl déjà présent).

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par jacpapac Voir le message
    En gros je voudrais que quand on clique sur le menu on affiche le usercontrol correspondant dans la fenetre principale...
    Comme le dit binoo, n'importe quel contrôle container te permet de faire cela

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 74
    Par défaut
    Ah ouais je viens d'essayer ça fonctionne... Je sais pas pourquoi je m'acharnais avec les Frames...
    Sinon, comment je peux faire pour qu'une seule instance de user control existe ? (singleton ?) et avoir un endroit ou stocker dans un menu les users controls déjà ouverts ? Par exemple, un stackpanel dans lequel je mets toutes les fenetres (user controls) déjà ouvertes ?

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Pourquoi tu ne voudrais avoir qu'une seule instance de tes UserControl (comme un singleton) ? Si tu ouvres et fermes une Window, alors tu va réinstancier tes UC, ce qui est le mieux en termes de perf.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 74
    Par défaut
    C'est un choix fonctionnel, si l'utilisateur ouvre une view (usercontrol) et qu'il est en train de faire quelque chose dessus, pour ne pas perdre ses modifications non sauvegardées je garde l'instance...
    Sinon pour mon appli je dois utiliser la Composite Application Library, (Prism), avez vous des tuto simples pour démarrer ?

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par jacpapac Voir le message
    Sinon pour mon appli je dois utiliser la Composite Application Library, (Prism), avez vous des tuto simples pour démarrer ?
    Non, je ne connais rien de simple sur le sujet mais c'est sur ma TODO list

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    je ne sais pas si je peux t'aider mais moi en .net 2 j'avais fait un truc de ce style
    je t'explique
    a gauche une list box contenant des elements que tu veux configurer et a droite un panel recevant des user control pour la config des elements

    voici comment j'(avais fait
    sur chaque classe metier (represente a gauche)
    j'avais un attribut perso style
    [persoEditor(typeof(editor de la classe))]
    public class maclass{ ... }

    quand je clique sur l'element a gauche
    une sorte d'editor manager (static via ou pas un singleton), verrifie si l'editor a ete cree
    - si non le cree avec la reccup de la classe (typef(editor de la classe)) et cree le composant d'edition a qui il passe la classe et l'enregistre dans l'editor manager
    - si oui (enfin dans tous les cas - vu qu'on passe toujours par le non avant - )
    on reccup le composant qu'on affiche dans le bando droit
    (on peut enlever tout les editor s'y trouvant avant d'ajouter celui qu'on souhaite)

    apres qu'on soit en .net 2 ou 3.5 ca reste la meme chose
    faut juste ajouter l'item au container ou vider le container

Discussions similaires

  1. Ajouter des controls a une window WPF
    Par Billy GunZ dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 18/08/2010, 10h34
  2. ajouter des données dans une requête htttp en js
    Par jeromejanson dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/10/2005, 15h34
  3. Ajouter des CHAMPS dans une table via ASP
    Par hysteresis dans le forum Access
    Réponses: 1
    Dernier message: 27/09/2005, 15h39
  4. ajouter des control dans une onglet de sstab sous VB6
    Par aymane_farissi dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/09/2005, 13h44
  5. Réponses: 14
    Dernier message: 22/09/2005, 16h49

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