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


Prepare


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

 聯系作者及加群方式(激活碼在群里發放):http://www.hslcommunication.cn/Cooperation

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

Install-Package HslCommunication

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

 

 

Summary


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

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

 

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

拖拽完成后效果如下:

 

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

 

 

按鈕控件:


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

公開的屬性如下:

 

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

時間控件:


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

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

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

進度條控件:


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

 

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

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

 

餅圖控件:


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

餅圖控件的屬性相對比較少,目前就只有一個  IsRenderPercent  是否顯示百分比的功能。

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

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來實現數據本身。效果如下:

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

 

儀表盤控件:


話不多說,先上圖,再解釋:

儀表盤控件的基礎屬性如下:

主要支持的特性為:

  • 隨意調整大小,儀表的扇形也會隨之變化,從半圓到微小的扇形都可以。
  • 支持設置顯示區間,起始值,最大值,設置的當前值需要處於兩者之間,否則無效。
  • 指針的變動支持簡單的動畫效果。
  • 支持手動設置刻度的分段數量,比如我要設置0-140的情況,分為14段比較合理,如果儀表盤較大,分為28段也可以。
  • 支持下限報警區間和上限報警區間,在儀表盤控件的外層有額外顯示。
  • 支持值處於報警區間時的文本閃爍。
  • 支持手動設置指針的顏色。
  • 支持設置單位或額外的文本顯示信息。

 

按鈕開關控件:


話不多說,先上圖,再解釋:

按鈕開關支持2中狀態,關和開,可以設置自定義的前景色,背景色,按鈕開關變化時將會觸發 OnSwitchChanged 事件,可以在屬性窗口的事件管理器來設置事件。

主要的設置對象是前景色,背景色,開關狀態。

信號燈控件:


這個控件相對比較簡單,除了一個顏色設置外,目前還沒有其他什么功能:

屬性也很簡單。

 

曲線控件:


曲線控件用於方便的顯示一些實時數據的趨勢,由於曲線控件功能復雜,所以單獨開了一篇文章講解曲線控件:http://www.cnblogs.com/dathlin/p/8341222.html

此處就貼幾張效果圖:僅供參考

單曲線-像素點模式顯示

單曲線-拉伸模式

多曲線-像素點模式

雙坐標-多曲線-像素點模式

 

 

其他控件:


未完待續...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM