Domanda

Quali metodi GDI posso usare per disegnare la forma blu mostrato nell'immagine qui sotto? Il centro deve essere trasparente.

alt text

È stato utile?

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:.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top