/// <summary> /// Sets Bar visible property and remembers the auto-hide state. /// </summary> /// <param name="bar">Bar to set visibility for.</param> /// <param name="visible">true if visible otherwise false</param> public static void SetBarVisible(Bar bar, bool visible) { if (bar == null || bar.Visible == visible) return; DotNetBarManager manager = bar.Owner as DotNetBarManager; if (manager != null) manager.SuspendLayout = true; try { if (visible) { bar.Visible = true; if (bar.PropertyBag.ContainsKey(BarPropertyBagKeys.AutoHideSetting)) { bar.PropertyBag.Remove(BarPropertyBagKeys.AutoHideSetting); bar.AutoHide = true; } } else { if (bar.PropertyBag.ContainsKey(BarPropertyBagKeys.AutoHideSetting)) bar.PropertyBag.Remove(BarPropertyBagKeys.AutoHideSetting); // Remember auto-hide setting if (bar.AutoHide) bar.PropertyBag.Add(BarPropertyBagKeys.AutoHideSetting, true); bar.CloseBar(); } } finally { if (manager != null) manager.SuspendLayout = false; bar.RecalcLayout(); } }