private void RedrawBands() { for (int i = 0; i < Controls.Count; i++) { BandPanel bp = Controls[i] as BandPanel; RecalcLayout(bp, i); } }
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); }
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 }