允许用户为winform应用程序选择全局主题

Ref*_*din 4 user-interface themes devexpress

我正在构建一个winform应用程序中使用DevExpress控件供内部使用.我的应用程序总共有大约30个表单,我试图找到一种方法来允许我的用户选择一个主题.我已经多次在其他帖子的答案中看到过这里提到过的内容.

我相信StyleController是如何工作的,我相信,但我想知道的是我如何在整个应用程序中使用1个Style控制器.

现在我正在尝试在Shell表单中创建1个StlyeController,然后将引用传递给每个子表单.然后我必须以编程方式为每个控件设置StyleController属性.我不介意我只是想知道,特别是那些做过这个的人,如果有更简单的方法吗?

Fra*_* B. 8

这很简单.此示例假设您正在使用外观.

在主窗体的构造函数中调用:

DevExpress.Skins.SkinManager.EnableFormSkins();
Run Code Online (Sandbox Code Playgroud)

这将使您的表单使用当前皮肤.从XtraForm派生的每个表单也很重要.

之后,您需要为应用程序设置全局外观对象:

//This set the style to use skin technology
DevExpress.LookAndFeel.UserLookAndFeel.Default.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Skin;

//Here we specify the skin to use by its name           
DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle("Black");
Run Code Online (Sandbox Code Playgroud)

如果要设置Office 2003等应用程序的外观,则设置会有所不同.你只需要调用以下函数:

DevExpress.LookAndFeel.UserLookAndFeel.Default.SetOffice2003Style();
Run Code Online (Sandbox Code Playgroud)

因此,devexpress的每个控件都将使用这些设置来绘制自己.可以为某些控件指定自定义LookAndFeel对象,但我从未使用它,因为我没有看到为控件或表单自定义显示的要点.

例外: Devexpress框架中有一个例外.NavBarControl不会从您的全局LookAndFeel对象自动使用皮肤技术,您需要指定一个设置来启用它:

//To use the current skin
youNavBarControl.PaintStyleName = "SkinNavigationPane";

//To use the current look and feel without the skin
youNavBarControl.PaintStyleName = "NavigationPane";
Run Code Online (Sandbox Code Playgroud)