更换Winform 皮肤(上)----使用现有皮肤
偶然的想法,遇到了Winform更改Winform皮膚的問題。
WPF沒有這個問題,WPF的控件都是沒有外形的,完全可以根據自己需要自由發揮,可以通過直觀的編碼實現各種絢麗的界面效果,網上也有很多現有的style、template供參考。
相比WPF,Winform換膚就沒有那么幸運了。實現起來相對比較麻煩。
Baidu+Google,發現解決Winform換膚的實現方法,基本有如下兩種。
實現1.使用現有皮膚。優點:實現及其簡單,基本不需要編碼;但細節需要注意。缺點:不能自己定制
實現2.完全的GDI+繪制。有點:可以完全根據個人愛好制作個性化的界面。缺點:完成一個用戶體驗良好的皮膚,編碼量和前期圖片素材準備需要花費精力。
本文首先介紹實現1:使用現有皮膚的方法,后面的博文會介紹實現2.
實現1,原理是很簡單的,你像是換主題一樣,只需要第三方法的類庫就可以實現
SkinCrafter?? http://skincrafter.com/
irisskin????? http://www.sunisoft.cn/irisskin/index.htm
DotNetSkin??? http://www.dotnetskin.net/
還有更高級的 Infragistics NetAdvantage
所有這些第三方類庫,DebugLZQ沒有都去驗證。只是試了下IrisSkin2.dll(下載),和SSK皮膚文件(下載),這個皮膚里面有一個展示Demo,可以查看各種皮膚對應的效果。
博客園里有幾篇類似的文章,但是LZ試了一下。主要的問題是:很多文章相互參考(你懂的.......),很多根本都沒有去試過,結果按著他的步驟去嘗試,運行不了,存在相同的問題。無良的人啊,誤人子弟!
下面step by step來實現這個Demo。
1.新建一個Winform項目,把上面的dll文件和SSK皮膚文件放入項目的bin/debug目錄下。并添加這個dll文件的引用。
2.在窗體cs文件中添加如下傻瓜般的代碼,如下:
namespace TaskVision_V_1_WinForm {/// <summary>/// Winform 皮膚 Demo/// By DebugLZQ/// http://www.cnblogs.com/DebugLZQ/// </summary>public partial class Form1 : Form{Sunisoft.IrisSkin.SkinEngine se = null;public Form1(){InitializeComponent();se = new Sunisoft.IrisSkin.SkinEngine();se.SkinAllForm = true;//所有窗體均應用此皮膚se.SkinFile = "skin/WaveColor1.ssk";}private void button1_Click(object sender, EventArgs e){Form2 f2 = new Form2();f2.Show();} } }運行如下:
中間的黑框框是LZ拖上去的DataGridView控件。
需要注意的地方是:該第三方控件要求.NET Framework 版本最高為3.5。使用VS2010或是VS2012的博友需要更改項目的目標版本。
下一篇博文將介紹自定義皮膚的方法,請期待。。。
總結
以上是生活随笔為你收集整理的更换Winform 皮肤(上)----使用现有皮肤的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: mysql数据库解除外键
- 下一篇: VMware下主机与虚拟机通信问题
