示例#1
0
 private void RedrawBands()
 {
     for (int i = 0; i < Controls.Count; i++)
     {
         BandPanel bp = Controls[i] as BandPanel;
         RecalcLayout(bp, i);
     }
 }
示例#2
0
        public void AddBand(Image im, string caption, ContentPanel content)
        {
            content.outlookBar = this;
            int         index     = Controls.Count;
            BandTagInfo bti       = new BandTagInfo(this, index);
            BandPanel   bandPanel = new BandPanel(im, caption, content, bti);

            Controls.Add(bandPanel);
            UpdateBarInfo();
            RecalcLayout(bandPanel, index);
        }
示例#3
0
        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 - 8);
        }