示例#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, int setIndex = -1)
        {
            content.outlookBar = this;
            int index;

            if (setIndex < 0)//為了日後手動指定做修改 at 2017/09/11
            {
                index = Controls.Count;
            }
            else
            {
                index = setIndex;
            }
            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);

            IconPanel IP = (IconPanel)bandPanel.Controls[1];

            IP.resetPanelTextBackColor(1);//2016/01/08  避免系統反應太慢,造成畫面出現一個以上的選擇UI
        }