C # Dibujo en paneles
Estoy elaborando un horario diario y representando intervalos de tiempo con paneles, y las citas son aún más paneles en la parte superior.
El usuario puede desplazarse hacia arriba y hacia abajo para que el rango que puede ver se cambie antes o después. Cuando una cita se ejecuta al final del rango visible, quiero que haya un zig-zag que indique que la cita se extiende más allá de los límites visibles.
Identifiqué el caso en que esto ocurre y llamo a una función privadadrawZigZag(Panel p, int direction);
para dibujarlo. El día se extiende horizontalmente, y la dirección -1 indica un zigzag a la izquierda y 1 indica un zigzag a la derecha.
Hasta ahora, todavía no estoy a la altura del zigzag, solo estoy experimentando conCreateGraphics()
yFillPolygon()
. Hasta ahora tengo:
private void drawZigZag(Panel p, int direction) // 1 = right, -1 = left
{
Graphics g = p.CreateGraphics();
g.FillRectangle(new SolidBrush(Color.FromArgb(0, Color.Black)), p.DisplayRectangle);
Point[] points = new Point[4];
points[0] = new Point(0, 0);
points[1] = new Point(0, p.Height);
points[2] = new Point(p.Width, p.Height);
points[3] = new Point(p.Width, 0);
Brush brush = new SolidBrush(Color.DarkGreen);
g.FillPolygon(brush, points);
}
El primeroFillRectangle()
Yo no tenía originalmente. Solo agregué eso cuando laFillPolygon()
no funcionó.
Básicamente, no funciona y no estoy seguro de por qué. El panel es del color original, no se ha llenado DarkGreen. He usadoCreateGraphics()
antes para otras cosas, y no estoy realmente seguro de por qué no está funcionando en esta instancia. ¿Algunas ideas
Edit: Lo siento, pensé que debería mencionar: Hay variasLabel
controles en miPanel
que describen la cita. Estos no deberían estar cubiertos si es posible.