Pregunta

¿Qué métodos de GDI puedo utilizar para dibujar la forma azul se muestra en la imagen de abajo? El centro debe ser transparente.

text alt

¿Fue útil?

Solución

Hay un número de maneras, pero es probable que quieren utilizar la siguiente:

FillRectangle
FillPolygon
DrawLine

ya que parece que su forma se puede reducir a un rectángulo y dos polígonos y luego esbozó por unas pocas líneas.

Este es un ejemplo muy simple y no modificable de lo que estaba 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))

...

Otros consejos

Im asumiendo GDI + aquí también conocido como System.Drawing espacio de nombres.

Lo mejor que puede hacer es mirar a la clase System.Drawing.Drawing2d.GraphicsPath:

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

Es necesario asegurarse de que se cierra el camino para conseguir el efecto hueco.

¿No sería más fácil dibujar usando un mapa de bits? Eso es lo que están de todos modos:.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top