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 Forms Discussion :

Cherche infos pour faire de belles interfaces graphiques


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Points : 28
    Points
    28
    Par défaut Cherche infos pour faire de belles interfaces graphiques
    Salut,

    Je débuté en C# .NET et compagnie

    Je vois tout un tas de programmes disposant d'une interface graphique sympa.

    Exemple :

    Paint.NET : Avec son menu intégré dans la barre de titre (agrandie) et ses miniatures elles aussi a cheval sur la barre de titres.

    Je dispose de :
    - Windows Seven 7100.
    - C# 2008 Express Edition.
    - Visual Studio 2010 Beta.

    Je cherche mais je n'arrive pas à trouver un début de piste.

    Au final, les interfaces graphiques mes applications sont toutes classiques.

    Je cherche aussi a utiliser les dernieres fonction mises à disposition par Windows Seven.

    La barre de défilement directement sur la barre des tâches.
    Le menu contextuel lors d'un clic sur l'application dans la barre des taches.

    Pour tout ça, je ne trouve que des exemples en C++ (et encore) via le SDK de Windows Seven.


    Ce que je cherche absolument à intégrer, c'est ce que Microsoft appelle Ribbon. L'espèce de barre ruban que l'on a dans Paint ou WordPad sous Windows Seven.

    Tout ce que je trouve là dessus, ce sont des plugins tiers et payants.
    Microsoft devrait l'avoir intégré dans Visual Studio 2010 non ?

    Au final, ça en fait des questions. Ca fait quelques jours que je cherche, mais au final, je n'avances pas.

    En fouillant un peu partout, j'ai trouvé ça (ça semble être en partie ce que je veux faire ) :
    http://badger.developpez.com/tutorie...t-glass-vista/

    Si quelqu'un peut me donner quelques pistes, ce serait sympa

    Merci d'avance pour votre aide.

    A+

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    Déja si tu commences en C#, peut-etre que commencer par faire des applications qui fonctionnellement fonctionne sera déja une bonne base

    Après, si tu veux faire du vraiment joli, tu peux peut-etre songé à WPF qui me semble plus "simple" pour ce qui est du beau que Winform.

    Etant un pro de winform, j'arrive à faire ce que je veux avec, mais il me semble que WPF, pour peu qu'on est un peu la fibre "infographiste" est plus "complet" et surtout bien orienté beau !!!

    Après, pour ce qui est de Paint.Net, il n'y a rien d'exceptionnel dans l'IHM. Juste un peu d'utilisation "subtile" des panels, etc...

    Pour ce qui est du Ribbon, moi, j'ai trouvé une version opensource sur codeplex qui fait celà...

    Maintenant, de ce que j'ai lu du ribbon, il est préconisé de l'utilisé "uniquement" dans les cas ou le menu dispose de "beaucoup" d'entrée et que pour chaque menu de la barre de menu on dispose de beaucoup d'options (un texte citant autour de 50 fonctionnalités présentes dans un menu suggérait l'usage du ribbon dans ce cas là, et le "déconseillait" sinon)...

    Personnellement, quand je développe un logiciel, mon premier soucis est que le logiciel fonctionne et apporte les besoins exprimés. Pour l'aspect beau, je m'en soucis un peu plus tard car pour moi, celà relève d'autres éléments.
    Si la programmation est bien faite et que le logiciel est bien découpé d'un point de vue architecture, tu pourras très aisément substituer une IHM fonctionnelle mais moche par une très très jolie.

    Voilà mon opinion et je la partage avec moi-même
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    Merci pour ta réponse

    Par "je commence en C#" je veux dire que je code en ce langage depuis 2 ou 3 mois.
    Pour apprendre, j'ai refait pour un ami l'application qu'il utilise pour communiquer avec un boitier de sa fabrication (puce FTDI donc communication série via la DLL fournie par FTDI). Le logiciel permet de flasher le boitier, de régler les paramètres, d'envoyer des images que le boitier peut afficher (il est possible d'éditer les images directement dans le logiciel), bref, j'ai essayé de toucher à un maximum de choses toujours de manière ludique.

    Maintenant, l'application est quasiment terminée, mais je trouve que d'un point de vue graphisme, elle est pas terrible.

    C'est pour ça que je cherche des infos pour améliorer tout ça (comme la Progress Bar dans la barre des taches pour indiquer l'avancement du chargement du microgiciel sur le boitier).

    En ce qui concerne les Ribbon, c'est vrai que je n'en aurais pas l'utilité, mais je les trouve vraiment sympas et j'aimerais au moins savoir comment ils fonctionnent histoire de pouvoir les utiliser dans une future application

    C'est quant même bizarre que Microsoft ne donne pas plus d'infos. Ils sont pourtant intégrés dans Seven, il faut obligatoirement passer par un fournisseur tiers (même open source) pour les utiliser ?

  4. #4
    Membre averti Avatar de _PascalC_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Vendée (Pays de la Loire)

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

    Informations forums :
    Inscription : Août 2008
    Messages : 220
    Points : 428
    Points
    428
    Par défaut
    Salut, si certains aspects de l'interface de Paint.NET te plaisent bien, pourquoi ne pas aller voir sous le capot comment ça a été codé. Pour rappel ce logiciel est open-source

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    Salut

    Eh oui, j'ai cherché

    Mais depuis quelques versions, les sources du logiciel ne sont plus distribuées !

    Tout ce que j'ai pu trouver, c'est la source de la V3.01 qui commence à dater. Il faut que je la compile pour voir si l'interface ressemble à celle de la dernière version, mais vu les screens, j'en doute.

    Je ne cherche peut être pas là où il faut, mais je n'arrive pas à trouver de projets open-source (ou du moins avec des sources non cachées) en C#.
    Vous connaissez certains gros projets sur lesquels je pourrais apprendre en regardant leur code source ?

  6. #6
    Membre averti Avatar de _PascalC_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Vendée (Pays de la Loire)

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

    Informations forums :
    Inscription : Août 2008
    Messages : 220
    Points : 428
    Points
    428
    Par défaut
    Mais depuis quelques versions, les sources du logiciel ne sont plus distribuées !
    Exact ! Un début d'explication ici : http://blog.getpaint.net/2009/11/06/...-paintnet-v35/

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    sur Codeplex, tu peux trouver pas mal de chose et de controle qui "améliore" le rendu visuel.

    Sur Codeproject également

    Après, tu veux une application "Carré" (fenetre) ou bien une fenetre genre Window Media player (dans certains styles arrondis ) ?
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    Merci pour tous ces liens, je ne les connaissais pas Je vais aller voir ce qu'ils proposent !

    A vrai dire, je ne cherche pas à faire une interface graphique trop flashy ni trop extrême.
    Si j'arrivais à inclure les petits trucs "simples" que l'on trouve sur la fenêtre principale de Paint.net, je serais super content

    Je prends toujours Paint.net comme exemple car c'est le seul "gros" logiciel (avec SharpDevelop) que je connaisse et qui soit développé en C# !

  9. #9
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    après, en complément, tu peux aussi utiliser toute la base d'activeX que l'on trouve sur le en gratuitement

    Meme si certains commencent à être vraiment dépasser, d'autres peuvent
    parfois servir (même si coté IHM c'est moins vrai que pour des trucs dans les
    communications, port série, etc...)
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    ActiveX, c'est bien une technologie que je ne connais que de nom. Il me semble que ça a un rapport avec IE non ? Pour faire des sites dynamiques.

    Je vais quant même me documenter, mais si ça correspond bien à ce que je pense, je doute que je vais m'attarder dessus !

  11. #11
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    activeX est le nom "simplifier" pour les objects COM (Component Object Model)

    Il s'agit d'une technologie microsoft qui date déja un peu mais qui a le mérite de te permette d'utiliser un composant COM (ActiveX) quelque soit le langage dans lequel il a été programmé

    On peut faire des activeX en VB, delphi, Windev, C++, C#, etc...

    L'avantage d'un tel composant et d'être utilisable par n'importe quel langage qui sait travailler avec ce type de composant

    Depuis l'avenement de .Net, il est beaucoup moins fréquent de ne pas trouver des composants à la fois en COM (ActiveX) et en .Net, mais bon, quelques composants gratuits n'ont pas été portés et s'avèrent parfois utiles face à des composants uniquement disponibles en payant

    Un dernier point pour faire du joli...

    L'aspect graphisme des images utilisées...

    Si tu mets des boutons avec de belles images (en mode flat par exemple), tu peux "rapidement" obtenir quelque chose de plus "sexy"...

    souvent le beau n'est pas que lié à la nature ou la forme du composant, mais aussi, finalement à l'homogénéité du graphisme. Si par exemple, tu as une image de fond sympa (genre alu brossé) et que tes composants restent dans cette philosophie (charte graphique pour être plus pro), tu donneras une impression de sérieux plus grande vis à vis de ton logiciel

    Si tu regardes Firefox, au niveau IHM, ya rien qui soit facilement faisable en C# ou en .Net... idem pour Word (en dehors du ribbon)...

    Le secret d'une très belle IHM, je te le livre : Un très bon infographiste + un bon développeur qui sait fournir les outils ou controles adaptés à l'infographiste .. Il n'en faut pas beaucoup plus pour faire du vraiment TRES beau...

    (Pour avoir travaillé dans la simulation ferroviaire, nos IHM réprésentant les pupitres des conducteurs étaient fournis sous forme d'image par les infographistes de la boite. Le role du développeur étant alors "uniquement" de fournir la fonctionnalité (par exemple, des manettes d'accéleration comme sur les métros n'étaient que plusieurs images et on switchait sur la bonne pour donner un effet sympathique)).
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    Merci énormément pour ton message Une grosse réflexion basée sur de l'expérience

    Justement, je suis absolument nul en graphisme... J'ai essayé de m'y mettre. Dessiner de petites icones a partir de rien, je pensais ça facile. Au final...

    Plus je réfléchis, plus je me rends compte qu'il me manque une base importante.

    Comment sont dessinées les IHM à l'écran !

    Je sais créer une Form, mettre un bouton dessus avec une icone.

    Mais derrière qu'est ce qui se passe ? Qu'est ce qui provoque l'affichage de ma Form et de son bouton ? Comment fait elle pour se dessiner à l'écran ? Ca je n'en ai absolument aucune idée.

    J'avais le même soucis quant j'utilisais Qt. J'appelais des classes des méthodes, mais au final, je ne savais pas du tout comment elles travaillaient en interne...

    Pour en revenir aux WinForms, je sais que le système est souvent expliqué en "couches", je vois leur nom, mais comment elles fonctionnent en interne, ça j'en sait absolument rien (et pourtant je suis très curieux, j'aime bien comprendre comment fonctionnent les choses !)

    Je suis quasiment sur que j'arriverais a faire des trucs sympa si j'arrivais à en comprendre le fonctionnement !

  13. #13
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    alors comment ca marche en gros (on va faire simple)

    Chaque composant dispose d'une fonction OnPaint()

    Cette fonction est appelé par le système d'exploitation à chaque fois que celà est necessaire (resize, fenetre par dessus, move, etc..)

    Ce raffraichissement est également appelé si tu appelles la fonction Invalidate()
    de ce controle (qui déclenche donc le OnPaint())

    Ensuite, dans le OnPaint(), le système te passe un objet Graphics qui représente un contexte graphique (DC : Device Context en C++).

    Grace à cette objet, tu vas pouvoir dessiner. Si tu regardes l'objet graphique, tu verras plein de méthode de dessin

    Ensuite, comment sont rendus les boutons classiques, combo, etc...

    Il existe un autre classe : ControlPaint qui fournit des méthodes statiques pour dessiner des éléments de base de Windows (et comme par hasard, ces méthodes demandent un objet Graphics en argument, quelle surprise).

    A partir du moment ou tu surcharges cette méthode OnPaint(), tu peux tout à fait dessiner comme tu l'entends.

    Un tutoriel sur ce site explique comment réaliser un UserControl (controle utilisateur et explicite cet aspect du dessin).

    Voilà comment celà fonctionne en gros... Et sous Windows, TOUS les controles disposent d'un contexte graphique car tous les controles dérives en général de la classe Windows (chaque bouton, etc est une fenetre simplifiée)
    (d'ou une explication de la gestion "bordélique" de la vraie transparence sous Windows..)

    Voilà, si tu as d'autres questions, n'hésites pas
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    Merci beaucoup pour cette réponse claire et précise

    Actuellement, je n'ai pas commencé à regarder comment lui faire une jolie interface graphique, mais je pense que ca ne va pas tarder

    Merci encore

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    Salut,

    Je reprends le topic, j'ai eu une petite info intéressante en ce qui concerne le Ribbon.

    Lorsque vous enregistrez votre version de Visual Studio C# Express auprès de Microsoft, vous recevez un email. Dans cet email se trouvent tout un tas de ressources, dont un lien pour télécharger l'extension Ribbon.

    Je n'ai pas encore testé, mais ça semble assez intuitif. Tout semble se faire via l'interface graphique.

Discussions similaires

  1. Je cherche à faire une belle interface web en J2EE
    Par Aldian dans le forum Développement Web en Java
    Réponses: 7
    Dernier message: 07/09/2010, 18h44
  2. Quel logiciel utiliser pour faire une belle interface web?
    Par irnbru dans le forum Webdesign & Ergonomie
    Réponses: 7
    Dernier message: 18/10/2006, 09h07
  3. Cherche composant pour faire des diagrammes de Gantt
    Par Ptite Développeuse dans le forum C++Builder
    Réponses: 5
    Dernier message: 27/04/2006, 11h56
  4. Réponses: 7
    Dernier message: 16/04/2005, 08h55
  5. Cherche RAD pour la réalisation d'interfaces Web/swing
    Par RocketArena dans le forum EDI et Outils pour Java
    Réponses: 2
    Dernier message: 14/09/2004, 13h22

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