Ejemplo n.º 1
0
        /// <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();
            }
        }