-
[C#] Dessiner avec C# ?
Bonjour à tous !
Étant en train d'être formé au framework .NET et moult personnes m'ayant
déjà dit qu'avec C# on peut tout faire, je me suis alors posé la question de
savoir s'il était possible de dessiner avec C#.
Pour être plus concis, voici mon idée : je souhaiterai avoir un espace dans lequel
je puisse poser des formes géométrique (rectangle, ellipse, etc ...) que je puisse
ensuite modifier (étirement, coloration, etc ...) lorsque je le souhaiterai. En outre,
sur ce plan, nous devrions avoir un quadrillage (à la manière de Visio, par
exemple), qui en outre pourrait être intelligent, de telle façon que l'on puisse
arranger facilement les différentes formes que l'on dessiner (par exemple, placer
3 rectangles les uns à côté des autres).
En peu de mot, je souhaiterai avoir un mix de Visio (pour le positionnement
dans un quadrillage) et de Paint avec une application écrite en C#.
Est-ce possible ? Si oui, comment faire ?
Cordialement.
-
oh oui
c'est facilement possible en C#
ce que tu dis, j'ai fait quelque chose de semblable
alors je peux te dire que ton idée est entièrement réalisable, pourvu que tu veuille le faire, que tu fait des efforts...
pour ce qui est de l'application, jte laisse trouver comment faire ... faut que tu cherche un peu...
mais pour ce qui est du dessin, c'est très simple
premièrement pour dessiner, il te faut un contexte graphique, si par exemple tu dessine sur ta form au complet tu fait Graphics.FromHwnd(this.Handle) et voilà t'as le contexte graphique de ta form et tu peux dessiner dedans
tu peux dessiner juste sur un panel en assignant une image à la propriété BackgroundImage, faut ensuite faire tous les comportements que tu veux en gérant tous les évènements adéquatement.
mais bref, pour le dessin, une fois que t'as le contexte graphique, tu peux t'amuser pour des heures, il y a des méthodes de prévues dans cette classe pour dessiner à peu près n'importe quoi.
et si tu dessine sur ta form entière, n'oublie pas de ne pas dessiner carrémant dessus mais sur une image en mémoire(un buffer) que tu montreras ensuite (double-buffering)
avec ça je pense que tu es bien partie
si t'as des questions gêne-toi pas
-
Bonjour,
Merci pour ta réponse !
Étant grand débutant en C# (et par conséquent en .NET) et comme tout le
monde m'indiquait que l'on peut tout faire avec C#, je me suis dit s'il serait
possible de créer une telle application.
D'après ce que j'ai vu, les classes GDI+ me serait d'un grand secours (je ne
sais pas si c'est de celles-là auxquelles tu te réfères).
Je suis également en train de télécharger le source de Paint.NET afin d'analyser
la partie graphique, bien que je n'ai l'utilité que de fonctions très sommaire.
Sinon, qu'entends-tu par contexte graphique ?
Merci beaucoup.
Cordialement.
-
le contexte graphique c'est un objet Graphics associé à un objet
sur quoi tu dessines
et les classes que je parle c'est bien GDI+ :D
-
Merci pour tes précisions !
Je vais m'empresser de mes jeter dans le GDI+ une fois que
j'aurai bien compris la logique de C#.
Encore merci.
-
Encore merci pour l'info !
Maintenant je souhaiterai travailler par exemple sur un rectangle
que j'aurai poser sur le contexte graphique. Je voudrai par exemple
pouvoir le sélectionner pour ensuite pouvoir l'étirer, changer de
position sur le contexte graphique, etc ...
As-tu des pistes ?
Par avance, merci.
Cordialement.
-
ce qui est sûr c'est qui faut que tu garde les coordonnées de ton retangle
ensuite assure-toi que les évènements Click, MouseDrag et MouseMove sont bien écoutés par += new System.EventHandler(monEcouteur). Ensuite, lors d'un ènement Drag (lors d'une clic avec maintien de la souris enfoncée), tu n'auras qu'a vérifer les coordonnées stockées sur ton dessin et si elle correspondent, cela veut dire que tu as saisi ton objet. Ensuite, reste plus qu'à faire ce que tu veux avec, genre dragger et étirer, etc.
-
Bonjour !
Merci beaucoup pour ta réponse.
Cordialement.