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 :

Drawing.2D - StartCap plus grand que la ligne


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 13
    Points
    13
    Par défaut Drawing.2D - StartCap plus grand que la ligne
    Bonjour à tous,
    Voila j'ai besoin de dessiner des lignes entre des panels.
    Ca c'est fait mais le probleme se pose sur le StartCap,
    J'ai besoin que l'épaisseur de mon StartCap soit différente de celle de la ligne...Hors si je change la propriété Width de mon Pen, cela change aussi la taille de mon StartCap...
    Y'a t-il une solution? voici une partie de mon code pour vous aider un peu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    void objTabPage_Paint(object sender, PaintEventArgs e)
            {
                TabPage objTabPage = (TabPage)sender;
                Graphics objGraphics = e.Graphics;
                GraphicsPath path = new GraphicsPath();
     
                Pen pen = new Pen(Color.Black,4);
                Pen penJoin = new Pen(Color.Black, 4);
                penJoin.LineJoin = LineJoin.Bevel;
                pen.StartCap = LineCap.ArrowAnchor;            
     
                //FLECHE DEBUT à RECT_1
                int PtDepX = objTabPage.Controls["PNL_DEBUT"].Left + ((objTabPage.Controls["PNL_DEBUT"].Width) / 2);
                int PtDepY = objTabPage.Controls["PNL_DEBUT"].Bottom;
                int PtArrX = objTabPage.Controls["PNL_DEBUT"].Left + ((objTabPage.Controls["PNL_DEBUT"].Width) / 2) ;
                int PtArrY = objTabPage.Controls["PNL_DEBUT"].Bottom + (((objTabPage.Controls["PNL_RECTANGLE_1"].Top - objTabPage.Controls["PNL_DEBUT"].Bottom)/2)-2);
                int PtDepX2 = objTabPage.Controls["PNL_RECTANGLE_1"].Left + ((objTabPage.Controls["PNL_RECTANGLE_1"].Width) / 2);
                int PtDepY2 = objTabPage.Controls["PNL_RECTANGLE_1"].Top - (((objTabPage.Controls["PNL_RECTANGLE_1"].Top - objTabPage.Controls["PNL_DEBUT"].Bottom) / 2)+2);
                int PtArrX2 = objTabPage.Controls["PNL_RECTANGLE_1"].Left + ((objTabPage.Controls["PNL_RECTANGLE_1"].Width) / 2);
                int PtArrY2 = objTabPage.Controls["PNL_RECTANGLE_1"].Top;
                path.StartFigure();
                path.AddLine(new Point(PtDepX, PtDepY), new Point(PtArrX, PtArrY));
                path.AddLine(new Point(PtArrX, PtArrY), new Point(PtDepX2, PtDepY2));
                e.Graphics.DrawLine(pen, PtArrX2, PtArrY2, PtDepX2, PtDepY2-2);            
                e.Graphics.DrawPath(penJoin, path);
     
                //FLECHE RECT_1 à RECT_2
                PtDepX = objTabPage.Controls["PNL_RECTANGLE_1"].Right;
                PtDepY = objTabPage.Controls["PNL_RECTANGLE_1"].Top + ((objTabPage.Controls["PNL_RECTANGLE_1"].Height)/2);
                PtArrX = objTabPage.Controls["PNL_RECTANGLE_2"].Left;
                PtArrY = objTabPage.Controls["PNL_RECTANGLE_2"].Top + ((objTabPage.Controls["PNL_RECTANGLE_2"].Height) / 2);
                e.Graphics.DrawLine(pen, PtArrX, PtArrY, PtDepX, PtDepY);
    }
    J'espere que vous pourrez m'aider...

    Evil.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 109
    Points : 120
    Points
    120
    Par défaut
    Tu peux regarder du coté de AdjustableArrowCap Cette classe possède des propriétés pour modifier la largeur, hauteur ...
    Tu peux ensuite l'assigner en tant que startcap

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    Salut
    merci pour ton aide ça a l'air d'être tout à fait ca mais j'ai beau essayé je n'arrive pas a m'en servir, comment cela marche t-il? Comment l'assigner en tant que StartCap comme tu dis?
    j'ai regardé sur le site de Microsoft mais je ne suis pas arrivé à grand chose, Tu pourrais me filer un ptit coup de main stp?

    Merci.

    Evil.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 109
    Points : 120
    Points
    120
    Par défaut
    Quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    AdjustableArrowCap arrowcap = new AdjustableArrowCap(20, 20);
    Pen pen = new Pen(Brushes.Blue);
    pen.CustomStartCap = arrowcap;

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup de ton aide Karlus, ça marche parfaitement bien maintenant !!!
    c'est tout simple en fait une fois que l'on connait...
    Encore Merci.

    Evil.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. 8 est plus grand que 28 ??!!
    Par n@n¤u dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/05/2006, 15h14
  2. Bureau plus grand que l'ecran
    Par taitaitai71 dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 21/04/2006, 09h59
  3. [CSS] option plus grand que select
    Par simoryl dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 11/01/2006, 19h27
  4. Réponses: 4
    Dernier message: 06/01/2006, 18h41
  5. [JFrame] Création d'une fenetre plus grande que l'ecran
    Par thetoctoc dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 23/09/2004, 11h05

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