本来以为DevExpress的defaultLookAndFeel换肤工具是万能的呢,只要添加上就可以自动适应,其实不然,下面说说如何实现整个项目中所有窗体同时换肤。
第一步: 让所有窗体都从DevExpress.XtraEditors.XtraForm继承。
第二步: 添加皮肤的引用
第三步: 建立一个窗体基类 ,其中加上
public
partial class ModuleForm : DevExpress.XtraEditors.XtraForm
{
public
static DevExpress.LookAndFeel.DefaultLookAndFeel defaultLookAndFeel=new DevExpress.LookAndFeel.DefaultLookAndFeel();
}
第四步:新窗体都继承于
ModuleForm
第五步:在其中一个窗体上把皮肤全部枚举出来放到一个ComboBoxEdit中,代码如下:
foreach (DevExpress.Skins.SkinContainer skin in DevExpress.Skins.SkinManager.Default.Skins) cmbAppStyle.Properties.Items.Add(skin.SkinName);
第六步:设置基类的DefaultLookAndFeel
ModuleForm.defaultLookAndFeel1.LookAndFeel.SkinName=cmbAppStyle.EditValue.ToString();
这样就可以实现整个项目中所有窗体同时换肤了