4

我正在为内部使用而构建的 winform 应用程序中使用 DevExpress 控件。我的应用程序总共有大约 30 个表单,我正试图找出一种方法让我的用户选择一个主题。我在其他帖子的回答中多次看到这里提到过这个。

我相信我了解 StyleController 的工作原理,但我想知道的是如何将 1 Style 控制器用于整个应用程序。

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

4

2 回答 2

8

这很简单。此示例假设您正在使用皮肤。

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

DevExpress.Skins.SkinManager.EnableFormSkins();

这将使您的表单能够使用当前皮肤。从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");

如果您想像 Office 2003 一样设置应用程序的外观和感觉,则设置是不同的。您只需调用以下函数:

DevExpress.LookAndFeel.UserLookAndFeel.Default.SetOffice2003Style();

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

Exception: There is one exception in Devexpress framework. The NavBarControl does not use the skin technology automatically from your global LookAndFeel object, you need to specify a setting to enable that:

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

//To use the current look and feel without the skin
youNavBarControl.PaintStyleName = "NavigationPane";
于 2009-07-22T14:41:12.623 回答
1

With version 11.2 I used the information in this article: http://www.devexpress.com/Support/Center/p/K18013.aspx

In summary :
* Inherit all your forms from XtraForm * Leave look and feel settings default so that they use the default skin
* Modify the default skin with the following line of code:
DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = "DevExpress Dark Style";

于 2012-04-12T08:55:25.873 回答