/// <summary>
        /// React to property changes and invoke PropertyChange event to listeners
        /// </summary>
        /// <param name="property">The property that changed</param>
        protected virtual void OnPropertyChange(ZeroitPandaPanelGroupProperties property)
        {
            switch (property)
            {
            case ZeroitPandaPanelGroupProperties.BorderMarginProperty:
            case ZeroitPandaPanelGroupProperties.PanelSpacingProperty:
                // force the position of panels to be reevaluated
                UpdatePanels();
                break;

            case ZeroitPandaPanelGroupProperties.PanelGradientProperty:
                break;
            }

            if (propertyChangeListeners != null)
            {
                propertyChangeListeners(this, new PropertyChangeEventArgs(property));
            }

            Invalidate();
        }
 /// <summary>
 /// Create a <c>PropertyChangeEventArgs</c>
 /// </summary>
 /// <param name="property">The enumeration for the property that changed</param>
 public PropertyChangeEventArgs(ZeroitPandaPanelGroupProperties property)
 {
     this.property = property;
 }