【STM32 .Net MF開發板學習-28】中文顯示(WPF方式)

來源:互聯網
上載者:User

   在《為Cortex-M3打造輕量級TinyGUI》中我們提到.NET MF的官方圖形庫為WPF,考慮到記憶體的限制和CPU的效能,所以我們開發了TinyGUI庫,並在《TinyGUI繪圖樣本》、《TinyGUI位元影像顯示》和《讓TinyGUI庫支援模擬器》文章中我們相繼介紹了TinyGUI的功能和特性,但是唯一美中不足的是,無法顯示中文字型。

要想靈活的顯示各種字型(包括中文或其它國家語言文字),還是需要WPF提供的字型顯示功能(曾打算把WPF中的文字顯示模組移植到TinyGUI庫中,發現相關內容太多,即使移植成功,TinyGUI也不是輕量級圖庫了)。

.NET MF的字型是專門定製的,為Tinyfnt字型檔,可以通過工具把Windows平台的字型轉換為Tinyfnt字型,這方面的內容,可以參考翁祖泉老師寫的文章《如何在.NET Micro Framework 的應用程式中添加中文字型?》,不過要想快速產生字型檔,還得需要我所編寫的字型檔產生工具,請參考《Tinyfnt字型研究》和《.Net Micro Framework研究—中文顯示》文章中的介紹。

字型檔產生後,就可以進行編程測試了,核心代碼如下:

internal sealed class WindowsDrawing : Window

{

    public override void OnRender(DrawingContext dc)

    {

        Color c = ColorUtility.ColorFromRGB(128, 0, 255);

        Brush b = new SolidColorBrush(c);

        Pen p = new Pen(c);

        //繪製背景(繪矩形)

        dc.DrawRectangle(b, p, 0, 0, Width, Height);

        //寫文字

        c = ColorUtility.ColorFromRGB(0, 255, 255);

        dc.DrawText("葉帆工作室[YFSoft]", Resources.GetFont(Resources.FontResources.S_9), c, 5, 5);

        c = Colors.Black;

        dc.DrawText("葉帆工作室[YFSoft]", Resources.GetFont(Resources.FontResources.z_12), c, 5, 25);

        c = Colors.Red;

        dc.DrawText("葉帆工作室[YFSoft]", Resources.GetFont(Resources.FontResources.MS_16), c, 5, 45);

        c = Colors.Green;

        dc.DrawText("葉帆工作室[YFSoft]", Resources.GetFont(Resources.FontResources.l_24), c, 5, 65);

        c = Colors.White;

        dc.DrawText("葉帆工作室[YFSoft]", Resources.GetFont(Resources.FontResources.hp_28), c, 5, 95);

    }

}

部署到開發板中的效果如下:

 

需要注意的是,開發板必須部署專屬的WPF韌體(文末已附相關連結),此外由於開發板上的SRAM有限,雖然支援了WPF,但是對一些記憶體需求比較大的應用程式,還是無法正常啟動並執行。

 

WPF韌體:http://www.sky-walker.com.cn/MFRelease/firmware/mfv41_firmware_redox_wpf.rar

源碼樣本:http://www.sky-walker.com.cn/MFRelease/Sample/MFFontTest.rar

MF論壇:http://space.cnblogs.com/group/MFSoft/

MF開發板:http://item.taobao.com/item.htm?id=7117999726

QQ群:127465602

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.