Inheritance: System.Windows.Forms.Panel
 private void RedrawBands()
 {
     UpdateBarInfo();
     for (int i = 0; i < Controls.Count; i++)
     {
         BandPanel bp = Controls[i] as BandPanel;
         RecalcLayout(bp, i);
     }
 }
        public void AddBand(string caption, ContentPanel content)
        {
            content.outlookBar = this;
            int         index     = Controls.Count;
            BandTagInfo bti       = new BandTagInfo(this, index);
            BandPanel   bandPanel = new BandPanel(caption, content, bti);

            Controls.Add(bandPanel);
            UpdateBarInfo();
            RecalcLayout(bandPanel, index);
        }
        private void RecalcLayout(BandPanel bandPanel, int index)
        {
            int vPos   = (index <= selectedBand) ? buttonHeight * index : buttonHeight * index + selectedBandHeight;
            int height = selectedBand == index ? selectedBandHeight + buttonHeight : buttonHeight;

            // the band dimensions
            bandPanel.Location = new Point(0, vPos);
            bandPanel.Size     = new Size(ClientRectangle.Width, height);

            // the contained button dimensions
            bandPanel.Controls[0].Location = new Point(0, 0);
            bandPanel.Controls[0].Size     = new Size(ClientRectangle.Width, buttonHeight);

            // the contained content panel dimensions
            bandPanel.Controls[1].Location = new Point(0, buttonHeight);
            bandPanel.Controls[1].Size     = new Size(ClientRectangle.Width - 2, height - 25);

            foreach (System.Windows.Forms.Control ctrlIcon in bandPanel.Content.Controls)
            {
                int iX = bandPanel.Content.Size.Width / 2 - ctrlIcon.Width / 2;
                ctrlIcon.Location = new Point(iX, ctrlIcon.Location.Y);
            }
        }
        private void RecalcLayout(BandPanel bandPanel, int index)
        {
            int vPos=(index <= selectedBand) ? buttonHeight*index : buttonHeight*index+selectedBandHeight;
                int height=selectedBand==index ? selectedBandHeight+buttonHeight : buttonHeight;

                // the band dimensions
                bandPanel.Location=new Point(0, vPos);
                bandPanel.Size=new Size(ClientRectangle.Width, height);

                // the contained button dimensions
                bandPanel.Controls[0].Location=new Point(0, 0);
                bandPanel.Controls[0].Size=new Size(ClientRectangle.Width, buttonHeight);

                // the contained content panel dimensions
                bandPanel.Controls[1].Location=new Point(0, buttonHeight);
                bandPanel.Controls[1].Size=new Size(ClientRectangle.Width-2, height-25);

                foreach(System.Windows.Forms.Control ctrlIcon in bandPanel.Content.Controls)
                {
                    int iX = bandPanel.Content.Size.Width/2 - ctrlIcon.Width/2;
                    ctrlIcon.Location = new Point(iX, ctrlIcon.Location.Y);
                }
        }
 public void AddBand(string caption, ContentPanel content)
 {
     content.outlookBar=this;
         int index=Controls.Count;
         BandTagInfo bti=new BandTagInfo(this, index);
         BandPanel bandPanel=new BandPanel(caption, content, bti);
         Controls.Add(bandPanel);
         UpdateBarInfo();
         RecalcLayout(bandPanel, index);
 }