Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ROUNDEDRECTANGLE : CRÉEZ DES RECTANGLES AVEC DES COINS ARRONDIS


Information sur la source



Description

Cliquez pour voir la capture en taille normale
Parfois le design d'un formulaire winform nécessite des arrondis... ça adoucit... ça flatte l'oeil.

Je vous propose donc cette struct construite sur le modèle System.Drawing.Rectangle : RoundedRectangle.


 

Source

  • // Exemple d'utilisation :
  • protected override void OnPaint(PaintEventArgs e)
  • {
  • base.OnPaint(e);
  • e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
  • // on va peindre des rectangles arrondis :D
  • RoundedRectangle rr = new RoundedRectangle(10, 10, 100, 100, RoundedCorner.All, 16);
  • e.Graphics.FillPath(SystemBrushes.WindowText, rr.ToGraphicsPath());
  • rr.Offset(110, 0);
  • e.Graphics.DrawPath(SystemPens.WindowText, rr.ToGraphicsPath());
  • rr.Offset(110, 0);
  • rr.RoundedCorners = RoundedCorner.TopLeft | RoundedCorner.BottomRight;
  • e.Graphics.FillPath(
  • new LinearGradientBrush(rr.ToRectangle(), SystemColors.ActiveCaption, SystemColors.GradientActiveCaption, LinearGradientMode.ForwardDiagonal),
  • rr.ToGraphicsPath());
  • }
// Exemple d'utilisation :
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);

            e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            // on va peindre des rectangles arrondis :D
            RoundedRectangle rr = new RoundedRectangle(10, 10, 100, 100, RoundedCorner.All, 16);

            e.Graphics.FillPath(SystemBrushes.WindowText, rr.ToGraphicsPath());

            rr.Offset(110, 0);
            e.Graphics.DrawPath(SystemPens.WindowText, rr.ToGraphicsPath());

            rr.Offset(110, 0);
            rr.RoundedCorners = RoundedCorner.TopLeft | RoundedCorner.BottomRight;
            e.Graphics.FillPath(
                new LinearGradientBrush(rr.ToRectangle(), SystemColors.ActiveCaption, SystemColors.GradientActiveCaption, LinearGradientMode.ForwardDiagonal),
                rr.ToGraphicsPath());

        }

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de coq le 03/01/2006 11:45:54 administrateur CS

Moi j'aime bien, marchi :)

signaler à un administrateur
Commentaire de Bidou le 03/01/2006 12:29:04 administrateur CS

J'aime bien aussi :-)
Petite question quand même : Tu overrides l'operator == et donc aussi != et donc Equals et GetHashCode.

Mais est-ce vraiment utile de faire :
      
public override int GetHashCode()
{
    return base.GetHashCode();
}

??

signaler à un administrateur
Commentaire de sebmafate le 03/01/2006 12:32:35 administrateur CS

car lorsque tu compiles sans ajouter cette surcharge, csc te retourne un warning... alors là, il ne gueule plus :D

et comme, je n'avais pas envie d'inventer une valeur de hash, je retourne le résultat de la classe de base... struct

signaler à un administrateur
Commentaire de Bidou le 03/01/2006 12:41:49 administrateur CS

Juste, j'aurais dû y penser!
Merci.

signaler à un administrateur
Commentaire de poppyto le 03/01/2006 13:44:32 administrateur CS

Très bien ^^ c'est joli en plus !

signaler à un administrateur
Commentaire de TheSaib le 03/01/2006 23:30:58 administrateur CS

Mouais c'est pa mal. :)

signaler à un administrateur
Commentaire de badrbadr le 04/01/2006 21:24:27

C'est beau
je me permet d'ajouter ma fonction que j'ai pris dans un livre de .net

GraphicsPath GetRoundedRectPath(Rectangle rect, int radius)
{
int diameter = 2 * radius;
Rectangle arcRect = new Rectangle(rect.Location, new Size(diameter, diameter));
GraphicsPath path = new GraphicsPath();
path.AddArc(arcRect, 180, 90);
arcRect.X = rect.Right - diameter;
path.AddArc(arcRect, 270, 90);
arcRect.Y = rect.Bottom - diameter;
path.AddArc(arcRect, 0, 90);
arcRect.X = rect.Left;
path.AddArc(arcRect, 90, 90);
path.CloseFigure();
return path;
}

signaler à un administrateur
Commentaire de sebmafate le 04/01/2006 21:40:49 administrateur CS

mouaip... je voulais pouvoir sélectionner les coins

signaler à un administrateur
Commentaire de eldim le 21/07/2006 17:05:49

Bonjour,
Superbe class pour faire des formulaire

Bon travail

signaler à un administrateur
Commentaire de sebmafate le 03/08/2006 10:29:45 administrateur CS

Merci pour la traduction VB.Net

signaler à un administrateur
Commentaire de eldim le 03/08/2006 10:32:26

de rien

signaler à un administrateur
Commentaire de malhivertman1 le 24/10/2006 14:45:02

ou ça la traduction en vb.net? merci.

signaler à un administrateur
Commentaire de sebmafate le 24/10/2006 14:51:44 administrateur CS

traduction vb.net : http://www.vbfrance.com/codes/RECTANGLES-ARRONDIS_38893.aspx

signaler à un administrateur
Commentaire de malhivertman1 le 25/10/2006 11:22:17

merci ;)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Dessins façon Paint [ par Franckyom50 ] J'aimerais savoir comment faire pour dessiner un rectangle, façon Paint : c-à-d cliquer a un endroit et en en restant appuyé, tracé un rectangle au fu Récupérer la taille d'une string [ par cpetitjean ] Y aurait-il un moyen de récupérer la taille d'une string quand on fait un graphics.DrawString() ??En fait je voudrais dessiner un rectangle autour d'u Image, Pixel, ... ? [ par streetlife ] Bonjour!Comment faire pour construire une image ou un bitmap avec un rectangle en coordonnées ecran.En effet, je souhaite construire une image (ou aut dessiner un rectangle sur les controles [ par LeGnuff ] Bonjour !j'ai un objget Graphics associé à une formj'aurais aimé savoir s'il y avait un moyen d'utiliser la méthodeGraphics.DrawRectangle(...) en fais une struct dans une arrylist???? [ par defcoco ] j'aurai voulu savoir si c'etait possible de faire une arraylist d'une struct sachant ke je developpe avec le compact frameworkj'ai essayé et j'arrive DLL Pointeur sur struct [ par kikoff ] ben voila j'ai un gros soucis je dois recuperede la dll une fonction qui renvoit un pointeur sur structureseulement voila comment faire pour recupere Image en cache ? [ par Maxsin ] Bonjour tout le monde :),J'ai un problème ennuyeux : Dans ma page .aspx j'ai une balise asp:ImageButton qui pointe toujours vers la même image (même c struct et .dat [ par ricklekebekoi ] Hello,En c, je peut faire ceci:#include <stdio.h>#include <iostream.h>File *ptrf;struct personne{char Nom[21],int Age,long T Arrondi entier inférieur [ par stailer ] Bonjour, donc voila mon code : NbrPages = Convert.ToInt32(NbrReponses / 10); Le problème est que si NbrReponses  = 69 alors le résult Rectangle de selection [ par fabmas ] Bonjour,je cherche a dessiner un rectangle de selction dont je pourrais modifier la taille par la suitepour le dessin, pas de soucis j'utilise :Contro


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,577 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.