1. 程式人生 > >C# 時間控件 豎直進度條 餅圖顯示 按鈕基礎控件庫

C# 時間控件 豎直進度條 餅圖顯示 按鈕基礎控件庫

種類型 ins 控制 按鈕 顏色 微軟 rgs mas 機制

Prepare


本文將使用一個NuGet公開的組件來實現一些特殊的控件顯示,方便大家進行快速的開發系統。

在Visual Studio 中的NuGet管理器中可以下載安裝,也可以直接在NuGet控制臺輸入下面的指令安裝:

Install-Package HslCommunication

NuGet安裝教程 http://www.cnblogs.com/dathlin/p/7705014.html

技術支持QQ群:592132877 (組件的版本更新細節也將第一時間在群裏發布)

Summary


組件中包含了一些控件,主要是針對winform機制的,由於WPF的機制完全不一致,所以此處咱提供WPF的版本,只提供了winfrom版本的控件,開發這些控件源自於我之前的項目累積,趁著空閑的間隙重新整理開發完成。

  • 首先便是對winfrom自身按鈕的不滿,實在是太過於醜了,而且容易被破解(假如你的按鈕做了權限驗證,權限不足的禁用,實際上這種操作是很危險的,用戶完全可以從網上下載一個灰色按鈕精靈來破解程序,將原先禁用的隱藏的按鈕變得可以點擊),所有就重新開發一個更加完善的按鈕,而且也不那麽醜了。
  • 時間顯示的控件就是純粹為了好玩開發的,想做個更有意思的控件,順便練練手,技能。
  • 縱向的豎立著的進度條,由於微軟沒有提供豎立的進度條,而當你需要這種時就很麻煩,一般橫向的進度條用微軟的即可,但是本組件的進度條也提供了橫著的選項。
  • 餅圖控件,為了方便的顯示一些數據的占用比,而開發的。

要想使用組件的控件,除了使用NuGet來安裝組件外,還需要將組件的dll文件(在你的項目的packages裏面可以找到,如果你本來就是引用本地的,就直接拖拽本地的即可)拖拽到工具欄:

技術分享圖片

拖拽完成後效果如下:

技術分享圖片

ok,現在可以將控件拖到界面上了,接下來就分別講解幾個控件:

按鈕控件:


直接拖到主界面效果如下:

技術分享圖片

公開的屬性如下:

技術分享圖片

基本的屬性都是有註釋的,要想設置顯示的文本,設置UIText即可。可以設置文本顏色,按鈕是否選中,以及圓角大小,基本常用的就這幾項了。雙擊按鈕,進入Click事件也是和button一致的,和button不一樣的地方除了界面的區別,還有就是無法被灰色精靈破解,還有按鈕自帶一個string屬性:CustomerInformation 便於擴展一些自定義的數據。

時間控件:


直接拖到主界面效果如下:

技術分享圖片

主要功能是自己獲取系統的時間,然後進行顯示,公開了一些允許設置的屬性界面:

技術分享圖片

主要是指針的顏色設置,文本設置。

進度條控件:


直接拖到主界面效果如下,演示了縱向和橫向的兩種進度條,以及一些顏色的設置,相關的屬性,隨便點點就可以明白:

技術分享圖片

主要設置的屬性是背景色,前景色,是否顯示文本,邊框色,是否啟動動畫,等等

技術分享圖片

特別說明:Max是上限值,如果設置為100,那麽Value = 10 就是10%, 而另一個屬性 ValueChangeSpeed 則是和動畫快慢有關的。

餅圖控件:


直接拖到主界面效果如下,餅圖數據的現實此處要是使用代碼來實現:

技術分享圖片

然後通過代碼來實現設置數據信息:

private void userButton1_Click(object sender, EventArgs e)
        {

            Random random = new Random();
            HslCommunication.Controls.UserPieChart[] charts = new HslCommunication.Controls.UserPieChart[4];
            charts[0] = userPieChart1;
            charts[1] = userPieChart2;
            charts[2] = userPieChart3;
            charts[3] = userPieChart4;


            for (int j = 0; j < 4; j++)
            {


                List<string> data = new List<string>();
                List<int> ints = new List<int>();
                for (int i = 0; i < random.Next(4, 8); i++)
                {
                    data.Add(random.Next(100, 999).ToString());
                    ints.Add(random.Next(1, 5));
                }

                charts[j].SetDataSource(
                    data.ToArray(),
                    ints.ToArray());
            }



        }
    }

無非是生成了隨機的名字和數據,通過SetDataSource來實現數據本身。效果如下:

技術分享圖片

此處的顏色也是隨機獲取的,禁止了白色及接近的白色的自動生成。如果需要指定自己的顏色,需要調用該方法的重載方法,傳入另一種類型的數據,允許傳入名字,值,及顏色。

其他控件:


未完待續...

C# 時間控件 豎直進度條 餅圖顯示 按鈕基礎控件庫