public override void Refresh()
{
base.Refresh();
int currentY = 0;
for (int i = 0; i < Controls.Count; i++)
{
if (Controls[i] is AccordionButton)
{
Controls[i].Location = new Point(Controls[i].Location.X, currentY);
currentY += Controls[i].Height + ItemSpace;
}
else
{
// Content.
var buttonCollapsed = ((AccordionButton)Controls[i - 1]).Collapsed;
if (buttonCollapsed)
{
Controls[i].Visible = false;
}
else
{
Controls[i].Visible = true;
Controls[i].Location = new Point(Controls[i].Location.X, currentY);
currentY += Controls[i].Height + ItemSpace;
}
}
}
Height = currentY;
}