public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
        {
            if (context == null)
            {
                return(new TypeConverter.StandardValuesCollection(new ArrayList()));
            }
            Control   instance = context.Instance as Control;
            ArrayList values   = new ArrayList();

            if ((instance != null) && (instance.Site != null))
            {
                IThemeResolutionService service = (IThemeResolutionService)instance.Site.GetService(typeof(IThemeResolutionService));
                ThemeProvider           stylesheetThemeProvider = service.GetStylesheetThemeProvider();
                ThemeProvider           themeProvider           = service.GetThemeProvider();
                if (stylesheetThemeProvider != null)
                {
                    values.AddRange(stylesheetThemeProvider.GetSkinsForControl(instance.GetType()));
                    values.Remove(string.Empty);
                }
                if (themeProvider != null)
                {
                    foreach (string str in themeProvider.GetSkinsForControl(instance.GetType()))
                    {
                        if (!values.Contains(str))
                        {
                            values.Add(str);
                        }
                    }
                    values.Remove(string.Empty);
                }
                values.Sort();
            }
            return(new TypeConverter.StandardValuesCollection(values));
        }