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

Silverlight Discussion :

Dessiner en silverlight


Sujet :

Silverlight

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Par défaut Dessiner en silverlight
    Bonjour à tous,

    Je suis en train de développer un contrôle Silverlight (4) pour dessiner des objets graphiques.

    Chaque objet graphique est composé de plusieurs sous objet, par exemple un rectangle bleu avec du texte au centre, et une image en haut à droite.

    Chaque sous objet est défini par un path (string), et des paramètres de couleur, de bordure...

    Le but est de pouvoir in fine déplacer chaque objet, les redimensionner, les supprimer.

    Pour dessiner en Silverlight l'objet "parent" est l'objet Path. C'est lui qui contient les propriétés de remplissage (couleur, dégradé, image) et un GeometryGroup contenant une ou plusieurs forme. Pour dessiner un objet il me faut plusieurs Path vu que je peux avoir des remplissages différents.

    Mon problème est le suivant :
    Comment faire pour sélectionner UN objet (avec un clic) qui sera composé de plusieurs Path (pour le déplacer, le redimensionner...) ? En clair comment regrouper plusieurs Path en un seul objet graphique ?

    Merci pour votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Peut être que tu peux regarder du coté des adorners, pour le coté "selection". Ensuite une fois que tu arrives à sélectionner un pah, j'imagine qu'il faut qu'il soit encapsuler dans une classe à toi, où chacun possède un "parent" et une collection de "fils".
    Quand tu sélectionne un individus demande à sélectionner également les fils.
    Il existe peut être des solutions toute faites mais désolé je ne connais pas.

  3. #3
    Membre émérite Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Par défaut
    Bonjour,

    Je rejoint alexxxx69 sur la méthode. Ayant déjà eu un projet similaire le plus important est la façon dont tu organise tes controls. Personnellement pour éviter de m’embêter avec la sélection j'avais choisie de modifier le Template d'une ListBox et de lui droper des ListItems (ce choix venait de ce qui avait été décidé niveau ergonomie). Ensuite il suffit d'être "malin" quand à la façon dont tu Template des ListItems.
    je ne te conseil pas forcément de faire le même choix que moi, plusieurs solutions sont possible comme un Canvas tout simple ou tu Drop des ContentControl.

    Je te conseil de faire plusieurs PROC avant de faire un choix, car celui-ci dépendra ta faciliter à résoudre les divers problème qui apparaisse au fur et à mesure du dev.

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Par défaut
    Merci pour vos réponses,

    Je suis effectivement parti sur la création d'une classe spécifique contenant tout ce qu'il faut, on verra après si des problèmes surviennent.

    Par ailleurs, j'utilise SilverlightSpy qui est très pratique pour debugger le silverlight et notamment avoir accès au xaml généré par le code ce qu'il m'amène à poser la question aux connaisseurs :
    Comment récupérer le code xaml d'un élément ? (cela me servirait à enregistrer ma zone de dessin (canvas) pour la ré-ouvrir ultérieurement)

  5. #5
    Membre émérite Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Par défaut
    Je comprend pas trop ta question, ce que tu veux c 'est pouvoir sauvegarder ton dessin, c est ça ?

    En supposant que oui, tu ne doit pas penser la chose tel quel. C est ton modèle derriere qui va gérer les different élément : placement dans le canvas, les differentes valeur du chemin ect...., et sérialiser ton modèle à un instant t afin de le "rebinder" lors du chargement et ainsi te retrouver dans le même état.

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Par défaut
    ha ok, tu sérialise le modèle contenant toutes les infos pour l'envoyer côté serveur et l'enregistrer ? Je n'y avais pas pensé

  7. #7
    Membre émérite Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Par défaut
    Bien sûr,

    Tes controls seront "bind" sur un modèle, c est celui ci que tu doit sauvegarder et c'est lui qui contient toute la logique au final. Pour le projet dont je t ai parlé la sauvegarde se faisait via un Web service.
    C'est d’ailleurs l’intérêt de ce que l'on appel le MVVM (entre autre), la logique côte model et le graphisme uniquement sur la vue.

  8. #8
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Par défaut
    Ok,

    Il faut que je vois comment intégrer mon appli silverlight dans mon application MVC car pour l'instant je n'utilise pas de WebService (qui pourraient aussi me servir pour mon appli MVC).

    J'en profite encore un peu, dans mon appli web MVC j'ai un répertoire avec toutes les images, dont certaines vont me servir dans mon appli silverlight, puis-je les réutiliser ou faut-il que je fasse une copie du répertoire ? Vue que les répertoires de l'appli silverlight sont compilés et encapsulés dans le fichier xap, il faut que je puisse utiliser des images d'un répertoire quelconque sinon il faut que je compile le XAP pour chaque client et c'est pas possible.

    Merci encore

  9. #9
    Membre émérite Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Par défaut
    Pour tes images je ne vois pas de soucis particulier pour les mutualiser.
    Bon courage n'hésite pas à demander.

  10. #10
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Par défaut
    Citation Envoyé par worm83 Voir le message
    Pour tes images je ne vois pas de soucis particulier pour les mutualiser.
    Le problème est que je n'arrive pas à y accéder

    J'utilise ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ImageSource = new BitmapImage(new Uri("../Content/images/" + propsGraph.ImageFile, UriKind.Relative))
    le ../ est pour sortir du répertoire ClientBin

  11. #11
    Membre émérite Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Par défaut
    T'as pas moyen de les passer ressources?

    Essaye ça :

    http://msdn.microsoft.com/en-us/libr...enced_Assembly

  12. #12
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Par défaut
    Merci je vais regarder, pour l'instant je galère un peu pour mettre en place l'architecture MVVM avec ServiceLocator et le binding.

  13. #13
    Membre émérite Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Par défaut
    Tu part sur quel framework MVVM ?
    Je te conseil MVVLight perso sur un petit projet comme ca.

  14. #14
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Par défaut
    J'utilise le tuto d'Olivier Dahan qui explique bien la mise en place du pattern et qui utilise pour les commands ce framework mais pour l'instant je ne l'ai pas utilisé, j'ai un peu de mal à voir l'utilité des commandes pour l'instant mais merci pour l'info je vais regarder

Discussions similaires

  1. Dessin Dynamique en Silverlight
    Par Xitog dans le forum Silverlight
    Réponses: 3
    Dernier message: 06/04/2009, 17h50
  2. [Graphic] Dessiner des hachures
    Par sylverspoon dans le forum 2D
    Réponses: 7
    Dernier message: 22/03/2006, 21h46
  3. [ALGO] dessiner un triangle dans le bon sens
    Par lefait dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 05/02/2005, 14h38
  4. Dessiner un rectangle avec bords et texte ...
    Par Djedjeridoo dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2003, 17h17
  5. Réponses: 3
    Dernier message: 12/06/2002, 19h03

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