frank.zhang 发表于 2015-2-17 10:33:00

添加C1Themes到WinForms应用程序

问题描述:添加C1Themes到WinForms应用程序
问题解答:本文介绍如何添加C1Themes到已经存在的WinForms应用程序。C1Themes内置超过25种专业设计的主题,也可以自定义主题,用于应用程序。本文主要介绍了给C1FlexGrid和C1TrueDBGrid设置主题,根据下述步骤,也可以给ComponentOne Studio for WinForms的C1Report,C1Ribbon以及其他控件,添加C1Themes。

关键代码:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
      {
          // Set theme on the theme controller:
          this.c1ThemeController1.Theme = this.comboBox1.SelectedItem.ToString();
          // ...and apply it to all themable controls (this will override any control-specific theme settings):
          Action setTheme = null;
          setTheme = (c) =>
          {
            if (C1.Win.C1Themes.C1ThemeController.IsObjectThemeable(c))
                  this.c1ThemeController1.SetTheme(c, this.c1ThemeController1.Theme);
            foreach (Control cc in c.Controls)
                  setTheme(cc);
          };
          setTheme(this);
      }
}

效果截图:



源码下载:
添加C1Themes到WinForms应用程序示例

handk 发表于 2015-4-7 11:52:00

计划给所有的窗体添加主题,但这个样例代码的效率异常的低效,不知是否有更好的方式。

Alice 发表于 2015-4-10 18:26:00

回复 2楼handk的帖子

这个是个已知问题,已经提交到产品组,会在后续版本进行验证和修复。

handk 发表于 2015-12-25 13:43:00

回复 3楼Alice的帖子

请问Alice,设置主题效率低的问题修复了吗?
如果修复了,是在哪一版修复的呢?

Alice 发表于 2016-1-13 12:17:00

回复 4楼handk的帖子

很抱歉回复晚了。
还没收到修复的通知。
页: [1]
查看完整版本: 添加C1Themes到WinForms应用程序