這篇主要講解如何使用簡單的字符界面模擬圖形界面。
Console針對是針對字符界面的,沒有圖形界面那麼好看,但是我們稍微花點心思,Console程序照樣 能做得很有意思。使用過Linux的朋友(特指使用字符界面)都會對wget、rpm、top等這些命令的字符輸 出驚歎。
我剽竊了前輩大牛們的創意,用C#在Console程序實現了一個CPU負載監控,功能類似於“任務管理器 ”的“性能”選項卡的CPU部分,當然功能弱很多啦。先上一張任務管理器的圖吧。
這是我的Console程序的輸出。
由於字符界面很難做到圖形化界面那樣細膩,所以僅將CPU的平均負載畫出來,每個核的負載沒有畫出 來。
這樣的Console程序基本思路是:
1。畫出一個框架。
2。定位光標,然後更新緩沖區。
以下給出一段畫出框架的代碼:
private static void BuildFramework()
{
Console.WriteLine(@" CPU LOADING ");// 0
Console.WriteLine(@" ~~~~~~~~~~~ ");// 1
Console.WriteLine(@" 11% [ ]");// 2
Console.WriteLine(@" ========================================================================");// 3
Console.WriteLine(@"100% +---------------------------------------------------------------- ------+");// 4 +
Console.WriteLine(@" 90% +----------------------------------- -----------------------------------+");// 5 |
Console.WriteLine(@" 80% +------ ----------------------------------------------------------------+");// 6 |
Console.WriteLine(@" 70% +--------------------------------------------------------------- -------+");// 7 |
Console.WriteLine(@" 60% +---------------------------------- ------------------------------------+");// 8 |
Console.WriteLine(@" 50% +- ---------------------------------------------------------------------+");// 9 yLenth:11
Console.WriteLine(@" 40% +---------------------------------------------- ------------------------+");// 10 |
Console.WriteLine(@" 30% +------------------ ----------------------------------------------------+");// 11 |
Console.WriteLine (@" 20% +----------------------------------------------------------------------+");// 12 |
Console.WriteLine(@" 10% +---------------------------------------------------- ------------------+");// 13 |
Console.WriteLine(@" 0% +------------------------- ---------------------------------------------+");// 14 +
Console.WriteLine(@" ========================================================================");// 15
// | | | | | | | | | | | | | | | |
// 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75
// |<------------------ ----- xLength:70 -------------------------------->|
}
注釋部分相當於標尺,方便第二步的定位光標。
定位光標主要使用 Console.SetCursorPosition(int left , int top) 這個方法,很顯然left相當於 橫坐標,top相當於總坐標啦。有了這個“武器”就可以開始塗鴉了。
以下給出一段話 “ProcessBar” 的代碼:
/ 用#畫出類似ProcessBar的效果
Console.SetCursorPosition(6, 2);
int graphics = int.Parse(loading) * xLength / 100;
for (int i = 0; i < graphics; i++)
{
Console.Write(@"#");
}
for (int i = 0; i < xLength - graphics; i++)
{
Console.Write(@" ");
}
如果結合上一篇:[原]Console小技巧——七彩輸出 在輸出中著色,那就更加漂亮了。
ActiveConsole源代碼下載