Problem GDI+ Schatten

02/01/2009 - 12:43 von Konrad Radinger | Report spam
Hallo zusammen,

ich hab ein Problem, bei dem ich einfach nicht richtig weiterkomme.

Den àußeren Schatten einer Form z.B. Kreis zu bekommen ist es ein leichtes
zuerst einen Kreis in Grau leicht in X,Y versetzt zu zuerst zu zeichnen und
danach den eigentlich sichtbaren Kreis.

Nun möchte ich jedoch für ein Loch im Kreis ebenfalls die Schattenanzeige
darstellen. Da muss nun eine Art grauer Achtelmond im Loch dargestellt
werden. Leider finde ich einfach keinen vernünftigen Ansatz...

Viele Grüße

Konrad Radinger
 

Lesen sie die antworten

#1 Frank Dzaebel
02/01/2009 - 22:20 | Warnen spam
Hallo Konrad,

Nun möchte ich jedoch für ein Loch im Kreis ebenfalls die
Schattenanzeige darstellen. Da muss nun eine Art grauer Achtelmond im Loch
dargestellt werden.



Ich kann mir Deine exakte Schattenform nicht
vorstellen, aber ein Achtelmond wàre etwa
als grober Ansatz:

private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics; //Width 0; Height 0;
g.SmoothingMode = SmoothingMode.AntiAlias;
Rectangle r = e.ClipRectangle; r.Inflate(-20, -20);
Point p1 = new Point(r.X, r.Y);
Point p2 = new Point(r.X + r.Width, r.Y + r.Height);
GraphicsPath gp = new GraphicsPath();
gp.AddArc(r, 0, 180); int height = r.Height / 2;
gp.AddArc(r.X, r.Y + height / 2, r.Width, height, 0, 180);
LinearGradientBrush lgb = new LinearGradientBrush(
p1, p2, Color.Black, Color.White);
g.FillPath(lgb, gp); lgb.Dispose(); gp.Dispose();
}


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen