用優秀.NET界面控件 打造新潮界面效果

來源: 伍華聰博客  發布時間: 2010-12-06 10:20  閱讀: 5338 次  推薦: 0   原文鏈接   [收藏]  
摘要:一直以來,做.NET共享小軟件的界面一般采用IrisSkin這個比較不錯的皮膚控件來美化界面效果,方便易用,界面效果也還可以。

  一直以來,做.NET共享小軟件的界面一般采用IrisSkin這個比較不錯的皮膚控件來美化界面效果,方便易用,界面效果也還可以。該控件開發應用比較方便,拖動控件到主界面,然后初始化地方添加一下代碼即可:

 
string skinFile = ConfigurationManager.AppSettings["SkinFile"];
this.skinEngine1.SkinFile = Path.Combine(Application.StartupPath, skinFile);

  主界面初始化中添加以上其他地方代碼后,所有該程序的相關窗口都被美化成統一風格。

  時代變遷,技術進化,界面效果變化無窮,現在最流行的界面應該是Windows2007風格,Ribbon風格的界面效果了,國外很多大型的.NET控件商,亦步亦趨,緊跟潮流,也推出不同版本的界面控件,支持這種新潮的界面效果。

  我這里主要介紹一下DotNetBar這個控件,這個控件使用也非常簡便,更加重要的是,這個控件提供各種各樣的界面控件,支持整體的Ribbon以及更多更復雜的界面效果。我們從該控件的官網效果中可以窺見一斑(http://www.devcomponents.com/dotnetbar/screenshots.aspx),其中的效果非常酷,和Office2007的效果幾乎沒有什么差異。

  本人閑暇之余用該控件做了一些界面測試效果,如下所示,這個應該是我下個版本QQ搜通天的界面效果了,呵呵:

1

  軟件包含幾部分內容,為了練手,我做了一個布局相對比較飽滿的程序,我通過這個小程序:短信發送程序,來介紹一下界面各部分的內容,以便使我們創建布局更加合理,更加美觀方便的節目效果。

1

  下面介紹的幾點內容,是基于上面圖形效果的編號來逐一分解,介紹各部分框架的意圖以及效果:

  1、Office2007中,這部分是一個綜合的菜單界面,我上面的小程序,只是保留按鈕,沒有設置菜單,類似頁面主頁連接的功能,可以快速返回到主界面中。

  2、Office界面樣式下拉選擇框,可以選擇不同的界面效果,在這里還可以放置一些快速的按鈕,如Office2007的保存、新建、撤銷等功能。

  3、 Ribbon樣式可折疊的TabItem控件,集中放置一些功能相對類似的按鈕或者其他界面元素,這里我放置了一些功能按鈕,附上一些圖片,就顯得比較好看了。

  4、 是技術支持網站的連接地址,也可以放一些幫助快速入口按鈕。

  5、 5、 6 模塊就是主界面顯示的區域了,這里因為功能界面不多,為了方便操作我使用了一個TabControl控件,把窗體內容控件一股腦的放到一起,這樣方便用戶的切換。

  6、 6其實是主體內容控件的,我在設計的時候,把每一部分內容都設計為一個用戶控件,這樣可以利用TableControl控件,動態統一把需要的用戶控件加載到界面中來。

  7、 用來顯示公司的Logon、操作提示信息、日期時間、登錄用戶等相關信息的狀態欄。

  通過以上7個模塊,我們把軟件的界面分解出來,各司其職,這樣布局相對比較穩定,容納的東西可以比較多,應該來說,還是一個不錯的界面效果布局,這些有賴于DotNetbar控件來幫助我們設計出專業、符合現代潮流的界面效果。

  其實在很多情況下,我們也可能采用基于單文檔這種方式的展示效果, 這樣用戶看到的東西不至于混亂,注意力相對集中,這樣的效果設計,在一些功能模塊和其他部分相對沒有太多直接關系的時候,就可以采用,如下面我們改變一下展示效果。

1

  上面的兩種圖形可以通過界面元素的組裝,來實現不同的效果布局顯示,這樣可以達到比較好的顯示效果。下面貼出一些功能代碼,以饗讀者:  

  1、 改變界面樣式的代碼:

 
private void ChangeStyle(object sender, EventArgs e)
{

string style = cbStyleManager.Text;
if ("Office2007Blue".Equals(style))
{
styleManager.ManagerStyle
= eStyle.Office2007Blue;
}

else if ("Office2007Silver".Equals(style))
{
styleManager.ManagerStyle
= eStyle.Office2007Silver;
}

else if ("Office2007Black".Equals(style))
{
styleManager.ManagerStyle
= eStyle.Office2007Black;
}

else if ("Office2007VistaGlass".Equals(style))
{
styleManager.ManagerStyle
= eStyle.Office2007VistaGlass;
}

else if ("Office2010Silver".Equals(style))
{
styleManager.ManagerStyle
= eStyle.Office2010Silver;
}

else if ("Windows7Blue".Equals(style))
{
styleManager.ManagerStyle
= eStyle.Windows7Blue;
}

config.AppConfigSet(

"UIStyle", style);
}

  2、 把用戶控件附加到界面上的代碼:

 
public void SetDetailPanel(UserControl uc)
{

if (uc == null)
{

throw new ArgumentNullException("uc", @"用戶控件uc不能為空");
}

uc.Dock

= DockStyle.Fill;
ribbonDetailPanel.Controls.Clear();
ribbonDetailPanel.Controls.Add(uc);
}
 
var tabMessage = new CtrlMessageTab();
SetDetailPanel(tabMessage);

  3、 使用TabControl控件,我們可以在代碼中動態組裝需要的窗體控件,如下所示:

 
ctrlMessage = new CtrlMainContent();
ctrlMessage.Dock
= DockStyle.Fill;
this.panelMessage.Controls.Add(ctrlMessage);

var ctrlTemplate

= new CtrlDictionary();
ctrlTemplate.Dock
= DockStyle.Fill;
ctrlTemplate.SetText
= new SetTextDelegate(SetMessage);
this.panelTemplate.Controls.Add(ctrlTemplate);

var ctrlLocal

= new CtrlLocalHistroy();
ctrlLocal.Dock
= DockStyle.Fill;
this.panelLocal.Controls.Add(ctrlLocal);

var ctrlAll

= new CtrlAllHistory();
ctrlAll.Dock
= DockStyle.Fill;
this.panelAllHistory.Controls.Add(ctrlAll);

DotNetBar提供了很多有用的控件,我們可以查看一下這里就知道了:http://www.devcomponents.com/dotnetbar/

  給我一個支點,可以撬動地球, 給我一個好的控件,可以裝扮好一個杰出的軟件。

0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()