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 :

[VS 2008] code wpf forms


Sujet :

Windows Presentation Foundation

  1. #1
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut [VS 2008] code wpf forms
    bonjour

    je voudrais tester un peu les wpf forms mais j'ai un peu de mal
    est-ce que quelqu'un sait comment rajouter un controle dynamiquement
    enfin je cherche à comprendre la nouvelle logique, car plus de controls.Add ...

    merci
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    IAddChild.AddChild peut-être ?
    Les contrôles qui peuvent avoir des "enfants" implémentent cette interface

  3. #3
    Membre chevronné
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monObjet.Children.Add(monSecondObjet);

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    peut etre... mais je ne vois rien apparaitre sur la fenetre ...

    et sinon pour parcourir les controles (à l'époque, for each ctr in me.controls), une idée ?


    @oyigit, l'objet window ainsi que l'objet grid qu'il y a dessus n'ont pas de propriété children ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    bon j'ai posé un canvas, avec lui j'arrive à ajouter des controles
    étrange qu'on ne puisse pas sur une fenetre ...


    autre question, comment mettre une image dans un label ? j'ai mis une image dans la propriété content et ca ecrit le nom de la classe plutot que de prendre l'image



    autre question, comment poser un label par code et définir son emplacement avec un emplacement statique
    (j'ai bien trouvé width et height mais plus de left et top ! (et le margin il m'embete))



    autre question, peut on faire autrement que d'avoir ce systeme d'ancrage automatique ??



    enfin, y a un tutorial quelque part ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    je crois que tu peux pas poser un contrôle directement sur une fenêtre... il faut qu'il y ait un controle Panel (Canvas, Grid, StackPanel...) sur la fenêtre, et tu mets les controles dedans.
    La question que je me posais, c'est comment changer par le code les propriétés attachées (Grid.Row, Grid.Column par exemple). J'ai trouvé ça.
    Il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    laGrille.Children.Add(leControle);
    Grid.SetColumn(leControle, indexDeLaColonne);
    Grid.SetRow(leControle, indexDeLaLigne);
    l'objet window ainsi que l'objet grid qu'il y a dessus n'ont pas de propriété children
    hein ? chez moi la classe Grid a bien la propriété Children... ce qui m'échappe par contre, c'est que d'après la doc elle implémente l'interface IAddChild, et pourtant elle n'a pas de méthode AddChild !?

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    PS : tu utilises quelle version du Framework ?
    Moi j'ai la 3.5 (VS2008 beta 2), peut-être que ça a changé au cours des différentes beta...

  8. #8
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    vs 2008 beta 2 aussi donc fx 3.5 aussi

    et pour grid et children, en fait j'ai posé un grid et dans xaml ca me défini le grid mais sans lui mettre de nom, pour ca que j'y avait pas accès je pense ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Sinon, pour tes autres questions :

    autre question, comment mettre une image dans un label ? j'ai mis une image dans la propriété content et ca ecrit le nom de la classe plutot que de prendre l'image
    Chez moi ça marche bien...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    		<Label Name="label1" VerticalAlignment="Stretch">
    			<Image Source="cat.png" />
    		</Label>
    autre question, comment poser un label par code et définir son emplacement avec un emplacement statique
    (j'ai bien trouvé width et height mais plus de left et top ! (et le margin il m'embete))
    Sur un Canvas, même principe qu'avec la grille :
    Canvas.SetTop
    Canvas.SetLeft

    autre question, peut on faire autrement que d'avoir ce systeme d'ancrage automatique ??
    Ca dépend du container que tu utilises. Si c'est un Canvas tu mets les contrôles où tu veux

  10. #10
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut

    Chez moi ça marche bien...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    		<Label Name="label1" VerticalAlignment="Stretch">
    			<Image Source="cat.png" />
    		</Label>
    oui mais moi je veux le faire par code pendant l'execution, pas en xaml
    mais ca vient ptete du fait que je lui donne un system.Drawing.image est qu'il veux un image du framework 3.5

    Sur un Canvas, même principe qu'avec la grille :
    Canvas.SetTop
    Canvas.SetLeft
    settop est à priori shared, je ne vois pas comment l'utiliser dans mon cas, ou alors c'est tordu


    autre question, comment mettre une image de fond sur une fenetre ? sur un canvas ? ... c'est deseperant leur nouveau truc !
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Membre expérimenté
    Avatar de SoBaKa
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    oui mais moi je veux le faire par code pendant l'execution, pas en xaml
    mais ca vient ptete du fait que je lui donne un system.Drawing.image est qu'il veux un image du framework 3.5
    Je ne sais pas si c'est dû au fait que tu utilises System.Drawing.Image...
    Mais par code, tu dois avoir une propriété Children logiquement (ca fait un bout de temps que j'ai pas touché au framework 3/3.5)...

    Tout contrôle peut être conteneur en WPF donc tous les contrôles ont a mon avis cette propriété children... (je parle de tête sur le peux d'essai que j'ai fait lol)

    Sinon une petite chose, évites de poser 30 questions en même temps car moi perso ça me donne l'impression que tu postes sur le forum et que tu cherches très peu par toi même.

  12. #12
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    je fais qu'ca de chercher mais l'aide est pas finie ... et puis c'est une nouvelle logique sur un produit non vendu, alors pour trouver des infos c'est pas évident ...

    enfin j'ai finalement réussi à faire ce que je voulais faire, tester les perf de WPF
    suf le framework 2 en posant 200 label avec une image qui clignote sur un pc dual core avec une carte 3d je suis à 20% de ressources processeur

    sur le framework 3.5 en wpf je varie entre 30 et 60%

    (et moins de 5% sous vb6 y a quelques années ...)

    moi qui croyait que ca allait etre mieux ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Membre expérimenté
    Avatar de SoBaKa
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    enfin j'ai finalement réussi à faire ce que je voulais faire, tester les perf de WPF
    suf le framework 2 en posant 200 label avec une image qui clignote sur un pc dual core avec une carte 3d je suis à 20% de ressources processeur

    sur le framework 3.5 en wpf je varie entre 30 et 60%

    (et moins de 5% sous vb6 y a quelques années ...)

    moi qui croyait que ca allait etre mieux ...
    c'est malheureusement obligé que ça se passe ainsi... Microsoft (et y a pas que lui) pense avant tout aux utilisateurs finaux qui veulent quelque chose de "joli"...

    On le dit pas assez souvent mais je pense que la "beautification" (ca se dit? lol) à les mêmes inconvénients que la "sécurité"... c'est à dire : perte de temps et perte de performances...

    --

    Sinon pour tous ce qui est info sur WPF, il y a de très bons blogs anglais (j'ai pas les adresses ici, suis au boulot)

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    oui mais moi je veux le faire par code pendant l'execution, pas en xaml
    mais ca vient ptete du fait que je lui donne un system.Drawing.image est qu'il veux un image du framework 3.5
    En effet il faut une image ImageSource (ou une classe dérivée). Fais comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BitmapImage img = New BitmapImage(New Uri("pack://application:,,,/cat.png"))
    Attention, il faut que l'image soit dans ton projet, compilée en tant que ressource (pas dans un .resx...)

    settop est à priori shared, je ne vois pas comment l'utiliser dans mon cas
    Oui c'est statique (ou shared si tu preferes), mais tu précises l'objet en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Canvas.SetTop(leControle, laValeurDeTop)
    image de fond sur une fenetre
    Pas encore cherché...

    c'est deseperant leur nouveau truc !
    lol, c'est l'impression que j'ai eu au début... mais maintenant que je commence à prendre le pli, je trouve ça plutôt pas mal, surtout tout ce qu'on peut faire avec les bindings

  15. #15
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    Citation Envoyé par SoBaKa Voir le message
    c'est malheureusement obligé que ça se passe ainsi... Microsoft (et y a pas que lui) pense avant tout aux utilisateurs finaux qui veulent quelque chose de "joli"...

    On le dit pas assez souvent mais je pense que la "beautification" (ca se dit? lol) à les mêmes inconvénients que la "sécurité"... c'est à dire : perte de temps et perte de performances...
    je suis d'accord sur la théorie
    mais y a le fait que fx2 et gdi+ n'est pas hardware accelerated alors que wpf tire partie de direct3D
    donc je m'attendais à un mieux
    et une fenetre avec des boutons reste quand meme moins belle qu'un jeu 3d récent donc ca pourrait quand meme etre mieux en terme de perf

    par contre c'est vrai que étant sur vb.net depuis peu, c'est un vrai plaisir à coder avec cette structure objet...


    PS : pour la beautification j'suis pas sur, peut etre plus embellissement à priori
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. VB.NET 2008 Code généré par le concepteur de vue
    Par EXPERMEGAS dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/06/2008, 10h21
  2. Code ouverture form via recherche
    Par LUCAS-28 dans le forum IHM
    Réponses: 2
    Dernier message: 18/09/2007, 21h23
  3. Affichage de tout le code du Form
    Par Cantalou dans le forum Access
    Réponses: 1
    Dernier message: 26/06/2006, 13h34
  4. [VBA] Code entre forms
    Par Virgile59 dans le forum Access
    Réponses: 3
    Dernier message: 28/12/2005, 21h57
  5. Récupérer le code des form sur Qt designer
    Par Death83 dans le forum Qt
    Réponses: 2
    Dernier message: 09/10/2005, 23h00

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