(原创)IconFont(矢量图标字体)在Winform中的应用
一、前言
很多時候,使用矢量圖形可以帶來非常美觀的界面效果,比如SVG的使用。但是Winform原生是不支持顯示SVG圖像的,所以退而求其次,可以使用IconFont來實現(xiàn)相似的矢量效果。
先來個圖解解饞:
知識點:資源文件中字體的使用方法、IconFont使用方法、IconFont應(yīng)用場景示例、IconFont顯示效果優(yōu)化、IconFont使用經(jīng)驗等。
相信看完的你,一定會有所收獲!
本文地址:https://www.cnblogs.com/lesliexin/p/14651505.html
二,IconFont
(一),IconFont選擇
網(wǎng)上IconFont資源很多,同時很多提供SVG下載的網(wǎng)站都會提供對應(yīng)的IconFont文件。
本文所用的是比較流行且開源免費的FontAwesome v4.7。官網(wǎng):http://www.fontawesome.com.cn
(二),IconFont使用方式
在Winform中,是使用圖標(biāo)字體的Unicode碼進行顯示的。
在FontAwesome官網(wǎng)中,有所有圖標(biāo)的Unicode,我們使用的就是如圖中的Unicode編碼。
在Winform中使用時,只需要將圖中的轉(zhuǎn)義符號替換成“u”即可,如圖所示:
三,重點
(一),嵌入資源中字體文件的使用
使用方法:PrivateFontCollection.AddMemoryFont( IntPtr memory, int length)
MSDN解釋:
(二),IconFont使用方法
1,方法一
支持添加文本顯示的控件,則直接使用即可,需要注意的是將控件的屬性“UseCompatibleTextRendering”設(shè)置為“true”。
2,方法二
使用GDI+的方法“Graphics.DrawString()”去繪制。
四、具體實現(xiàn)
(注:文末有源代碼工程下載)
(一),界面說明
包含1個ComboBox,4個Label,2個RadioButton。
(二),核心屬性相關(guān)
1,設(shè)置Label控件的屬性“UseCompatibleTextRendering”為“true”,以支持IconFont顯示。
MSDN解釋:
2,設(shè)置ComboBox的屬性“DrawMode”為“OwerDrawFiexd”,以支持下拉列表項的重繪。
(三),核心事件相關(guān)
1,ComboBox 列表項重繪事件——DrawItem
作用:對列表項進行重繪,支持顏色等。
2,Label點擊事件——Click
作用:點擊后改變文本
(四),核心方法相關(guān)
1,加載資源文件中IconFont文件
2,初始化下拉列表
3,IconFont顯示
五、問題及解決經(jīng)驗
1,IconFont中非圖標(biāo)字體問題
在使用了IconFont后,因為IconFont中只包含圖標(biāo),所以正常文字的字體就會以默認(rèn)字體來顯示,如宋體。
解決經(jīng)驗:
2,IconFont中圖標(biāo)存在鋸齒現(xiàn)象
在正常使用時,如果直接使用控件的Text屬性給控件設(shè)置圖標(biāo),就會出現(xiàn)鋸齒現(xiàn)象。
解決經(jīng)驗:
使用GDI+的方式去繪制字體,因為可以設(shè)置“SmoothingMode(平滑模式)”為“AntiAlias(反鋸齒)”,以達到?jīng)]有鋸齒平滑顯示的效果。
效果:
五、總結(jié)
每種技術(shù)都有自己的適用場景,在某些場景下使用IconFont可以很方便的實現(xiàn)一些顯示效果。
IconFont的應(yīng)用場景有很多,我這里是拋磚引玉,提供一種應(yīng)用思路而已。
歡迎大家評論指正。
源工程下載:https://files.cnblogs.com/files/lesliexin/DemoIconFont.7z
-【END]-
總結(jié)
以上是生活随笔為你收集整理的(原创)IconFont(矢量图标字体)在Winform中的应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NewLife.XCode 上手指南(四
- 下一篇: 【Win10】探索 Windows 10