源碼下載下傳: http://www.sky-walker.com.cn/yefan/MFV40/SourceCode/TinyGUI_Sample.rar
文章參考: 《.Net Micro Framework 快速入門》
中文讨論組:
http://space.cnblogs.com/group/MFSoft/.Net Micro Framework官方圖形庫是WPF,由于目前ST Cortex-M3開發闆RAM太小,最大才512K(常見是128K或256k),并且Cortex-M3的CPU主頻也不太高,運作WPF圖形架構顯得過于重了,是以我這邊推出了輕量級圖形庫TinyGUI(此外,我也推出了一個WinForm的架構,和.Net Framework保持相容,适合喜歡WinForm開發的使用者,不過這個不是輕量級的,參見《開源System.Windows.Forms庫,讓.Net Micro Framework界面開發和上位機一樣簡單》)。
TinyGUI的相關介紹,在我早期的一篇Blog中已經有介紹了,是以不知道TinyGUI為何物的讀者,可以先看看這篇文章《【玩轉.Net MF – 06】為Cortex-M3打造輕量級TinyGUI(上)》。
TinyGUI接口非常簡單,相關聲明如下:
public sealed class Graphics
{
public Graphics();
public static void Clear(uint color);
public static void DrawEllipse(int x, int y, int width, int height, uint color);
public static void DrawImage(int x, int y, byte[] bytData);
public static void DrawImageEx(int x, int y, byte[] bytData, uint MaskColor);
public static void DrawLine(int x1, int y1, int x2, int y2, uint color);
public static void DrawRectangle(int x, int y, int width, int height, uint color);
public static void DrawString(int x, int y, string s, uint color);
public static void FillEllipse(int x, int y, int width, int height, uint color);
public static void FillRectangle(int x, int y, int width, int height, uint color);
public static uint GetPixel(int x, int y);
public static void Print(string str);
public static void SetPixel(int x, int y, uint color);
}
相關繪圖示例如下(這就是我以前提供圖形示例pe檔案的源碼)
public static void Main()
{
uint[] colors = new uint[]{Color.Black, Color.Red,Color.Green, Color.Orange,Color.Yellow, Color.Brown,Color.Purple, Color.Gray,
Color.DarkGray, Color.LightGray,Color.Blue, Color.Magenta,Color.Cyan, Color.White,Color.LightGreen};
Graphics.Clear(Color.Blue);
int x, y, width, height,c;
long index = 0;
Random rnd = new Random();
while (true)
{
x = rnd.Next(239);
width = rnd.Next(239 - x);
y = rnd.Next(319);
height = rnd.Next(319 - y);
c = rnd.Next(colors.Length-1);
switch (index % 3)
{
case 0:
if (rnd.Next(10) > 5)
Graphics.DrawRectangle(x, y, width, height, colors[c]);
else
Graphics.FillRectangle(x, y, width, height, colors[c]);
break;
case 1:
if (rnd.Next(10) > 5)
Graphics.DrawEllipse(x, y, width, height, colors[c]);
else
Graphics.FillEllipse(x, y, width, height, colors[c]);
break;
case 2:
Graphics.DrawLine(x, y, rnd.Next(239), rnd.Next(319), colors[c]);
break;
}
Graphics.FillRectangle(0, 300, 239, 19, Color.White);
Graphics.DrawString(2, 303, (index++).ToString(), Color.Blue);
Thread.Sleep(50);
}
}
代碼比較簡單,這裡我就不過多解釋了。需要說明的是,該程式不能直接在模拟器中運作,并且需要引用System.TinyGUI.dll庫。
運作後的結果如下:

至于如何制作和顯示TinyBMP格式的位圖我們下篇文章再進行介紹。
相關連結:《免費發放firmwave,打造史上最低價.Net MF開發闆》
《.Net Micro Framework 快速入門》