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 :

Windows Application et XAML


Sujet :

Windows Presentation Foundation

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Windows Application et XAML
    Bonjour,

    J'ai une Windows Application réalisée en .Net 2.0. A côté j'ai un objet 3D réalisé en XAML.

    J'aimerais bien pouvoir ouvrir mon objet XAML à partir de mon interface réalisée en .Net 2.0, soit dans une autre fenêtre, soit en l'incorporant dans mon interface. Malgrè des recherches sur le forum et sur Google, je n'ai pas trouvé de réponse :S Est ce possible ? Y a t'il un Windows Form pour cela ?

    Ou dois je entièrement passé par une Windows Application en WPF ? Cette solution me semble contraignante, car il me semble qu'il n'y a pas autant de Windows Form disponible, et pas aussi rapide à manipuler qu'en .net 2.0, non ?

    Merci d'avance de votre aide.

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Dans ton application WindowsForms, il te suffit d'intégrer un Controle ElementHost: c'est un contrôle WPF qui te permet d'insérer, dans une WinForms, un contrôle WPF

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Salut,

    Merci pour ta réponse rapide. J'ai recherché des informations sur les ElementHost et je suis tombé sur ton tutoriel sur le WPF (WindowsPresentationFoundation.pdf).

    Ca m'a permit de résoudre mon petit souci

    Par contre, la majorité des sources accompagnant ce tuto ne tournent pas chez moi. Est ce parce qu'elles ont été réalisées sur une version beta, alors que maintenant je possède les versions finales du Framework 3.0 ?

    encore merci

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Enfin mon souci n'est pas encore tout à fait réglé lol.

    en fait, j'arrive à ouvrir mon fichier XAML dans une autre fenêtre à partir de mon Windows Form, par contre je n'arrive pas à intégrer ce même XAML directement à l'intérieur de mon Windows Form

    Il me semble pourtant avoir bien suivi ton tuto, avec l'étape "comment intégrer un contrôle WPF dans une application WindowsForms." J'ai veillé à intégrer toutes les références recommandées. Mais j'ai 3 erreurs :
    • La méthode surchargée correspondant le mieux à 'System.Windows.Forms.Control.ControlCollection.Add(System.Windows.Forms.Control)' possède des arguments non valides
    • Argument '1' : impossible de convertir de 'Security.SuperScanner' en 'System.Windows.Forms.Control
    • 'Security.SecurityControl' ne contient pas de définition pour 'splitContainer2'


    Voici le code présent dans ma Windows Form (en vertles 2 ligne squi contiennent les erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                //On affiche le Super Scanner créé en XAML
                ElementHost host = new ElementHost();
                host.Dock = DockStyle.Fill;
                SuperScanner scanner = new SuperScanner();
                host.Controls.Add(scanner);
                this.splitContainer2.Panel2.Controls.Add(host);
                this.Shown += delegate { this.Width++; };
    Et voici le début de mon fichier XAML (généré avec ZAM3D:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <UserControl x:Class="Security.SuperScanner"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <Grid>
          <Viewbox x:Name="ZAM3DViewbox" ClipToBounds="true" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/interactivedesigner/2006" xmlns:c="http://schemas.openxmlformats.org/markup-compatibility/2006" c:Ignorable="d">
     
            <Viewport3D x:Name="ZAM3DViewport3D" ClipToBounds="true" Width="300" Height="296">
              <Viewport3D.Resources>
                <ResourceDictionary>
    Mon but étant de réussir à afficher cette élément 3D dans ma Windows Form (mais étant donné que cette technologie est récéente, il n'y a pas encore d'exmples identiques ).

    Merci d'avance pour votre aide.

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Essaye ceci pour le code C#:

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //On affiche le Super Scanner créé en XAML
                ElementHost host = new ElementHost();
                host.Dock = DockStyle.Fill;
                SuperScanner scanner = new SuperScanner();
                host.Child = scanner;

    Il y a en effet des petites différences entre la version de l'article et la RTM

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci, ça compile sans erreur maintenant

    Par contre avec ce code, je ne vois pas ou mon ElementHost et lié avec ma Windows Form ?

    J'ai mis ce code dans la fonction Form1_Load de mon Windows Form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            private void Form1_Load(object sender, EventArgs e)
            {
                //On affiche le Super Scanner créé en XAML
                ElementHost host = new ElementHost();
                host.Dock = DockStyle.Fill;
                SuperScanner scanner = new SuperScanner();
                host.Child = scanner;
            }
    Mais après comment afficher ce host dnas mon interface ? (je n'arrive pas à me raccrocher à ton tuto )

    Merci d'avance

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Il faut ajouter le controle à la collection de Controls

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    private void Form1_Load(object sender, EventArgs e)
            {
                //On affiche le Super Scanner créé en XAML
                ElementHost host = new ElementHost();
                host.Dock = DockStyle.Fill;
                SuperScanner scanner = new SuperScanner();
                host.Child = scanner;
     
                this.Controls.Add(host);
            }

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    En effet, ça marche beaucoup mieux maintenant lol Merci beaucoup de m'avoir aidé aussi rapidement

    Je vais maintenant passer à l'étape suivante : prendre le contrôle de cet objet 3D réalisé en XAML. C'est à dire pouvoir lui faire des rotation dans tous les sens à partir de la souris, pouvoir zoomer, pouvoir le rendre transparent en cliquant sur un bouton, ect...

    Si jamais tu as des conseils ou des bonnes adresses, je suis toujours preneur (car la manipulation d'objets 3D, n'est pas beaucoup développer dans ton tutoriel )

    Bonne soirée

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Je ne suis pas expert en 3D, c'est donc pour cela que je n'ai pas trop étoffé cette partie dans mon tuto

    Et désolé, je n'ai pas vraiment de lien à te donner.....


    A+

  10. #10
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Ok merci en tout cas Ton tuto permet de donner de bonnes bases sur le Framework 3.0

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Merci

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

Discussions similaires

  1. projet Windows Application avec Visual C++
    Par stokastik dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 26/09/2006, 09h54
  2. Windows Application ? ( aidez un débutant !)
    Par dimmu dans le forum Windows
    Réponses: 15
    Dernier message: 31/08/2006, 16h37
  3. Windows Application Explication
    Par Dam254 dans le forum Windows
    Réponses: 1
    Dernier message: 20/06/2006, 09h34
  4. [C#][Windows application] - Heure de l'est, heure normal
    Par Erakis dans le forum Windows Forms
    Réponses: 4
    Dernier message: 03/10/2005, 16h37
  5. comment ecrire du texte dans une window application
    Par gaut dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 16/07/2003, 10h23

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