要使得子线程建的窗体什么的使用与主窗体一样的皮肤的话,至少在启动子线程的时候,要把主主窗体使用的SkinName传递进来
然后在子线程显示窗体之前,运行一下这个函数
private void InitiateDevExpressSkins()
{
// DevExpress.UserSkins.BonusSkins.Register();
DevExpress.UserSkins.OfficeSkins.Register();//这两种外观用了哪一种就初始化哪一种
DevExpress.Skins.SkinManager.EnableFormSkinsIfNotVista();
DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = 这里把主窗体的SkinName写上就行了;
}
{
// DevExpress.UserSkins.BonusSkins.Register();
DevExpress.UserSkins.OfficeSkins.Register();//这两种外观用了哪一种就初始化哪一种
DevExpress.Skins.SkinManager.EnableFormSkinsIfNotVista();
DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = 这里把主窗体的SkinName写上就行了;
}
其实如果仅仅是XtraMessageBox.Show的话,XtraMessageBox.Show每一种重载方式都可以在前面加一个 UserLookAndFeel类型参数进去,以改变显示的对话框所用样式。原则上这样是可以的,但是我用的时候老是出问题,UserLookAndFeel老是会自己变化。很搞不懂。
以上这种方式是官方论坛找到的,也得到一位国际友人的耐心指导,在此再次感谢。