Frage

Was GDI Methoden kann ich die blaue Form auf dem Bild gezeigt ziehen unten? Das Zentrum muss transparent sein.

alt text

War es hilfreich?

Lösung

Es gibt eine Reihe von Möglichkeiten, aber Sie werden wahrscheinlich wollen die folgende verwenden:

FillRectangle
FillPolygon
DrawLine

, da es wie Ihre Form aussieht, kann auf ein Rechteck und zwei Polygone reduziert werden und dann durch ein paar Zeilen dargestellt.

Hier ist ein wirklich einfaches und hartcodierte Beispiel dafür, was ich dachte:

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

...

Andere Tipps

Im vorausgesetzt GDI + hier aka System.Drawing-Namespace.

Das Beste, was zu tun ist, um System.Drawing.Drawing2d.GraphicsPath Klasse aussehen:

http://msdn.microsoft.com /en-us/library/system.drawing.drawing2d.graphicspath.aspx

Sie müssen sicherstellen, schließen Sie den Pfad des hohlen Effekt zu erhalten.

Wäre es nicht nur einfacher, es zu zeichnen ein Bitmap verwendet? Das ist, was sie sind für jeden Fall.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top