/// <summary> /// Raises the VisibleChanged event. /// </summary> /// <param name="e">An EventArgs that contains the event data.</param> protected override void OnVisibleChanged(EventArgs e) { base.OnVisibleChanged(e); if (this.DesignMode == true) { return; } if (this.Visible == false) { if (this.Expand == true) { this.Expand = false; foreach (Control control in this.Parent.Controls) { TX.Framework.WindowUI.Controls.XPanderPanel xpanderPanel = control as TX.Framework.WindowUI.Controls.XPanderPanel; if (xpanderPanel != null) { if (xpanderPanel.Visible == true) { xpanderPanel.Expand = true; return; } } } } } #if DEBUG //System.Diagnostics.Trace.WriteLine("Visibility: " + this.Name + this.Visible); #endif CalculatePanelHeights(); }
private void CalculatePanelHeights() { if (this.Parent == null) { return; } int iPanelHeight = this.Parent.Padding.Top; foreach (Control control in this.Parent.Controls) { TX.Framework.WindowUI.Controls.XPanderPanel xpanderPanel = control as TX.Framework.WindowUI.Controls.XPanderPanel; if ((xpanderPanel != null) && (xpanderPanel.Visible == true)) { iPanelHeight += xpanderPanel.CaptionHeight; } } iPanelHeight += this.Parent.Padding.Bottom; foreach (Control control in this.Parent.Controls) { TX.Framework.WindowUI.Controls.XPanderPanel xpanderPanel = control as TX.Framework.WindowUI.Controls.XPanderPanel; if (xpanderPanel != null) { if (xpanderPanel.Expand == true) { xpanderPanel.Height = this.Parent.Height + xpanderPanel.CaptionHeight - iPanelHeight; } else { xpanderPanel.Height = xpanderPanel.CaptionHeight; } } } int iTop = this.Parent.Padding.Top; foreach (Control control in this.Parent.Controls) { TX.Framework.WindowUI.Controls.XPanderPanel xpanderPanel = control as TX.Framework.WindowUI.Controls.XPanderPanel; if ((xpanderPanel != null) && (xpanderPanel.Visible == true)) { xpanderPanel.Top = iTop; iTop += xpanderPanel.Height; } } }