skinEngine如何在不同的窗体切换皮肤

  最近又在用C#写一个桌面软件...,一般winform自带的窗体比较丑,在网上发现了skinengine这个东西,插件的安装就不介绍了,网上有很多文章介绍,例如这个https://www.cnblogs.com/mq0036/p/6654219.html,我在实现过程中碰到了一些问题。

  第一是如果后面加入的窗体希望恢复默认皮肤,可以使用两种办法解决,一是在 ShowDialog将skinEngine1.SkinAllForm属性设置为false,二是将skinEngine1的disableTag设置为一个数字例如9999然后将新运行的form窗体的tag设置为9999.

  第二如果希望后面加入的窗体显示不同的皮肤,这个我在网上没有找到解决办法,结合几篇文章自己整理出一套解决办法,就是在加载窗体前先将当前的skinEngine的skinAllForm属性置为false,再在新窗体的构造函数中做如下声明

this.skinEngine2 = new Sunisoft.IrisSkin.SkinEngine(((System.ComponentModel.Component)(this)));
this.skinEngine2.SkinFile = System.Environment.CurrentDirectory + "//Skins//New.ssk";

我也不知道什么原理,按理说新窗体的skinEngine和原来的不是一个控件,知道的大佬可以透露一下。

你可能感兴趣的:(学习记录)