Ejemplo n.º 1
0
 public static void UpdateControlTheme(ToolStrip menu)
 {
     if (ThemeMessageFilter.Instance == null)
        {
     ThemeMessageFilter filter = new ThemeMessageFilter();
     ThemeMessageFilter.Instance.ThemeChanged += OnThemeChanged;
        }
        if (Environment.OSVersion.Version.Major >= 6)
        {
     UXThemeMenuRenderer renderer = new UXThemeMenuRenderer();
     if (menu.Renderer is ToolStripProfessionalRenderer)
     {
      menu.Disposed += OnThemedMenuDisposed;
      ThemedMenus.Add(menu, renderer);
      if (NativeMethods.ThemesActive)
       menu.Renderer = renderer;
     }
        }
        foreach (ToolStripItem item in menu.Items)
        {
     ToolStripMenuItem toolStripItem = item as ToolStripMenuItem;
     if (toolStripItem != null)
      UpdateControlTheme(toolStripItem);
        }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Updates the control's theme to fit in with the latest Windows visuals.
        /// </summary>
        /// <param name="menu">The tool strip control to set the theme on.</param>
        public static void ApplyTheme(ToolStrip menu)
        {
            //Register for Theme changed messages
            if (ThemeMessageFilter.Instance == null)
            {
                ThemeMessageFilter filter = new ThemeMessageFilter();
                filter.ThemeChanged += OnThemeChanged;
            }

            if (Environment.OSVersion.Version.Major >= 6)
            {
                //Assign our themed renderer for non-custom renderers
                UXThemeMenuRenderer renderer = new UXThemeMenuRenderer();
                if (menu.Renderer is ToolStripProfessionalRenderer)
                {
                    menu.Disposed += OnThemedMenuDisposed;
                    ThemedMenus.Add(menu, renderer);
                    if (Active)
                    {
                        menu.Renderer = renderer;
                    }
                }
            }

            foreach (ToolStripItem item in menu.Items)
            {
                ToolStripMenuItem toolStripItem = item as ToolStripMenuItem;
                if (toolStripItem != null)
                {
                    ApplyTheme(toolStripItem);
                }
            }
        }