Ik heb een user control gemaakt wat pie's voor een piechart kan tekenen.
als ik nu probeer om 2 halve cirkels te tekenen (samen 1 volle dus) lukt dit niet vanwege de transparantie van de achtergrond.
deze code roep ik dus 2 keer aan (voor iedere halve cirkel 1 keer).
De starthoek zit bij de 2 pie's 180 graden verschil tussen.
Als ik ze teken met behulp van het Graphics object van het aanroepende form gaat het goed, dan tekent hij ze rechtstreeks op het canvas zeg maar.
Maar ze moeten klikbaar zijn, dus dat mag niet.
iemand?
als ik nu probeer om 2 halve cirkels te tekenen (samen 1 volle dus) lukt dit niet vanwege de transparantie van de achtergrond.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| protected override void OnPaint(PaintEventArgs e)
{
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.BackColor = Color.Transparent;
Graphics gr = e.Graphics;
SolidBrush transBrush = new SolidBrush(Color.Transparent);
Graphics g = this.CreateGraphics();
GraphicsPath path = new GraphicsPath();
path.AddPie(x, y, width, height, starthoek, hoek);
gr.SetClip(new Region(path),CombineMode.Intersect);
gr.SmoothingMode = SmoothingMode.HighQuality;
gr.DrawPie(p, x, y, width, height, starthoek, hoek);
gr.FillPie(br, x, y, width, height, starthoek, hoek);
base.OnPaint (e);
} |
deze code roep ik dus 2 keer aan (voor iedere halve cirkel 1 keer).
De starthoek zit bij de 2 pie's 180 graden verschil tussen.
Als ik ze teken met behulp van het Graphics object van het aanroepende form gaat het goed, dan tekent hij ze rechtstreeks op het canvas zeg maar.
Maar ze moeten klikbaar zijn, dus dat mag niet.
iemand?
edit:
deze heb ik al werkend, maar dus niet klikbaar omdat hij op het canvas tekent.

deze heb ik al werkend, maar dus niet klikbaar omdat hij op het canvas tekent.

[ Voor 7% gewijzigd door 6K op 09-11-2004 08:03 ]
٩(͡๏̯͡๏)۶ ٩(●̮̮̃•̃)۶