/// <summary>
        /// Gets a padding metric value.
        /// </summary>
        /// <param name="state">Palette value should be applicable to this state.</param>
        /// <param name="metric">Requested metric.</param>
        /// <returns>Padding value.</returns>
        public virtual Padding GetMetricPadding(PaletteState state, PaletteMetricPadding metric)
        {
            switch (metric)
            {
                case PaletteMetricPadding.BarPaddingTabs:
                    if (!BarPaddingTabs.Equals(CommonHelper.InheritPadding))
                        return BarPaddingTabs;
                    break;
                case PaletteMetricPadding.BarPaddingInside:
                    if (!BarPaddingInside.Equals(CommonHelper.InheritPadding))
                        return BarPaddingInside;
                    break;
                case PaletteMetricPadding.BarPaddingOutside:
                    if (!BarPaddingOutside.Equals(CommonHelper.InheritPadding))
                        return BarPaddingOutside;
                    break;
                case PaletteMetricPadding.BarPaddingOnly:
                    if (!BarPaddingOnly.Equals(CommonHelper.InheritPadding))
                        return BarPaddingOnly;
                    break;
                case PaletteMetricPadding.BarButtonPadding:
                    if (!ButtonPadding.Equals(CommonHelper.InheritPadding))
                        return ButtonPadding;
                    break;
            }

            // Pass onto the inheritance
            return _redirect.GetMetricPadding(state, metric);
        }
        /// <summary>
        /// Gets a padding metric value.
        /// </summary>
        /// <param name="state">Palette value should be applicable to this state.</param>
        /// <param name="metric">Requested metric.</param>
        /// <returns>Padding value.</returns>
        public override Padding GetMetricPadding(PaletteState state, PaletteMetricPadding metric)
        {
            switch (metric)
            {
            case PaletteMetricPadding.BarButtonPadding:
                if (!ButtonPadding.Equals(CommonHelper.InheritPadding))
                {
                    return(ButtonPadding);
                }
                break;

            case PaletteMetricPadding.BarPaddingTabs:
                if (!BarPaddingTabs.Equals(CommonHelper.InheritPadding))
                {
                    return(BarPaddingInside);
                }
                break;

            case PaletteMetricPadding.BarPaddingInside:
                if (!BarPaddingInside.Equals(CommonHelper.InheritPadding))
                {
                    return(BarPaddingInside);
                }
                break;

            case PaletteMetricPadding.BarPaddingOutside:
                if (!BarPaddingOutside.Equals(CommonHelper.InheritPadding))
                {
                    return(BarPaddingOutside);
                }
                break;

            case PaletteMetricPadding.BarPaddingOnly:
                if (!BarPaddingOnly.Equals(CommonHelper.InheritPadding))
                {
                    return(BarPaddingOnly);
                }
                break;
            }

            // Pass onto the inheritance
            return(_redirect.GetMetricPadding(state, metric));
        }