Desenho em C # em Painéis
Estou elaborando um cronograma diário e representando intervalos de tempo com painéis, e os compromissos são ainda mais painéis no top
O usuário pode rolar para cima e para baixo para que o intervalo que eles podem ver seja alterado mais cedo ou mais tarde. Quando um compromisso termina no final do intervalo visível, quero que haja um zig-zag indicando que o compromisso se estende além dos limites visívei
Identifiquei o caso em que isso ocorre e chamo uma função privadadrawZigZag(Panel p, int direction);
para desenhá-lo. O dia é espalhado horizontalmente e a direção -1 indica um zigue-zague à esquerda e 1 indica um zigue-zague à direit
Até agora, ainda não estou em zigue-zague, estou apenas experimentandoCreateGraphics()
eFillPolygon()
. Até agora eu tenho:
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);
}
O primeiroFillRectangle()
Eu não tinha originalmente. Eu apenas adicionei que quando oFillPolygon()
não funcionou.
Basicamente, não está funcionando e não sei por que. O painel é da cor original - não foi preenchido com o DarkGreen. Eu useiCreateGraphics()
antes para outras coisas, e não tenho muita certeza de por que não está funcionando neste caso. Alguma ideia
Edit: Desculpe, eu pensei que deveria mencionar: Existem váriosLabel
ontroles @ no meuPanel
que descrevem o compromisso. Estes não devem ser cobertos, se possíve