C # GDI Drawing2D aiuto
Domanda
Quali metodi GDI posso usare per disegnare la forma blu mostrato nell'immagine qui sotto? Il centro deve essere trasparente.
Soluzione
Ci sono un certo numero di modi, ma probabilmente si vorrà utilizzare il seguente:
FillRectangle
FillPolygon
DrawLine
in quanto sembra che la forma può essere ridotta a un rettangolo e due poligoni e poi delineato da poche righe.
Ecco un esempio molto semplice e hard-coded di quello che stavo pensando:
Private Sub Control_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) _
Handles MyBase.Paint
Dim g As Graphics = e.Graphics
g.FillRectangle(Brushes.Aqua, New Rectangle(10, 10, 10, 90))
g.FillPolygon(Brushes.Aqua, New Point() { _
New Point(10, 10), _
New Point(20, 10), _
New Point(40, 50), _
New Point(30, 50)})
g.FillPolygon(Brushes.Aqua, New Point() { _
New Point(10, 100), _
New Point(20, 100), _
New Point(40, 50), _
New Point(30, 50)})
g.DrawLine(Pens.Black, New Point(10, 10), New Point(10, 100))
g.DrawLine(Pens.Black, New Point(10, 100), New Point(20, 100))
g.DrawLine(Pens.Black, New Point(20, 100), New Point(40, 50))
g.DrawLine(Pens.Black, New Point(40, 50), New Point(20, 10))
g.DrawLine(Pens.Black, New Point(20, 10), New Point(10, 10))
...
Altri suggerimenti
Im assumendo GDI + qui aka System.Drawing namespace.
La cosa migliore da fare è quello di guardare classe System.Drawing.Drawing2d.GraphicsPath:
http://msdn.microsoft.com /en-us/library/system.drawing.drawing2d.graphicspath.aspx
È necessario assicurarsi che si chiude il percorso per ottenere l'effetto cava.
Non sarebbe solo più facile da disegnare utilizzando una bitmap? Questo è ciò che sono per ogni caso:.)