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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    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 : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    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
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    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
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    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 : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    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
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    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

+ 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