Devexpress 多线程或辅助线程中使用样式(XtraMEssageBox使用与主窗体相同的皮肤)

典型的应用就是在子线程里显示一个XtraMEssageBox.Show(),默认是没有皮肤的。

要使得子线程建的窗体什么的使用与主窗体一样的皮肤的话,至少在启动子线程的时候,要把主主窗体使用的SkinName传递进来

然后在子线程显示窗体之前,运行一下这个函数

        private void InitiateDevExpressSkins()
        {
//             DevExpress.UserSkins.BonusSkins.Register();
            DevExpress.UserSkins.OfficeSkins.Register();//这两种外观用了哪一种就初始化哪一种
            DevExpress.Skins.SkinManager.EnableFormSkinsIfNotVista();
            DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName 
= 这里把主窗体的SkinName写上就行了;
        }



其实如果仅仅是XtraMessageBox.Show的话,XtraMessageBox.Show每一种重载方式都可以在前面加一个 UserLookAndFeel类型参数进去,以改变显示的对话框所用样式。原则上这样是可以的,但是我用的时候老是出问题,UserLookAndFeel老是会自己变化。很搞不懂。

 

以上这种方式是官方论坛找到的,也得到一位国际友人的耐心指导,在此再次感谢。

原文地址:https://www.cnblogs.com/shaoming01/p/devexpress_XtraMessageBox_Skin.html