我正在为我内部使用的winform应用程序中使用DevExpress控件。我的应用程序总共有大约30个表单,我试图找到一种方法来允许我的用户选择一个主题。我已经多次在其他帖子的答案中看到过这里提到过的内容。
我理解StyleController是如何工作的,我相信,但我想知道的是我如何在整个应用程序中使用1个Style控制器。
现在我正在尝试在Shell表单中创建1个StlyeController,然后将引用传递给每个子表单。然后我必须以编程方式为每个控件设置StyleController属性。我不介意我只是想知道,特别是那些做过这个的人,如果有更简单的方法吗?
答案 0 :(得分: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对象,但我从未使用它,因为我没有看到为控件或表单自定义显示的要点。
<强>异常:强> Devexpress框架中有一个例外。 NavBarControl不会自动从全局LookAndFeel对象使用皮肤技术,您需要指定一个设置来启用它:
//To use the current skin
youNavBarControl.PaintStyleName = "SkinNavigationPane";
//To use the current look and feel without the skin
youNavBarControl.PaintStyleName = "NavigationPane";
答案 1 :(得分:1)
对于版本11.2,我使用了本文中的信息: http://www.devexpress.com/Support/Center/p/K18013.aspx
总结:
*从XtraForm继承所有表单
*保持外观设置默认,以便他们使用默认外观
*使用以下代码行修改默认外观:
DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName =“DevExpress Dark Style”;