前言:
目前前端開發,比如Android、Web等,大家習慣了使用iconfont來顯示簡單的圖標顯示,不需要像原來之前用PS了。本節演示如何使用WPF使用IconFont圖標字體(如下圖所示效果)。
關於IconFont:
IconFont-阿里巴巴體驗團隊傾力打造,功能很強大且圖標內容很豐富的矢量圖標庫,提供矢量圖標下載、在線存儲、格式轉換等功能。
官網鏈接:https://www.iconfont.cn/
登陸並註冊IconFont:
登陸官網https://www.iconfont.cn/,註冊並登陸
創建IconFont項目:
依次點擊"圖標管理"\"我的項目",進入如下頁面
在"我的項目"頁面,點擊下圖箭頭所指的按鈕
新建項目,彈出對話框
這裏我僅修改項目名稱爲microui,其它的默認。
【特別注意一點:注意一下上面的FontClass/Symbol前綴和Font Family內容,這兩個具體是有什麼用,我在最後會說明。】
修改項目名稱,點擊"新建"按鈕就可以了。
從上圖就可以看到新建的項目中暫時沒有任何圖標,接下來我們就向其中添加一下圖標。
添加圖標至IconFont項目:
添加方法有很多,可以添加官網上的圖標,可以自己製作圖標上傳。這裏我僅添加官網上的圖標,在搜索框內輸入圖標內容,比如這裏搜索"掃碼"
如下爲搜索結果
隨便找一個圖標,鼠標放到上面
點擊箭頭所指的"添加入庫"圖標,可以看到購物車的徽標變成了數字1
再搜索並添加1個圖標,比如搜索詞"刪除"、"搜索",可以看到右上角購物車徽標變成了3
點擊右上角的"購物車",右側滑出頁面
這裏可以直接按鈕"下載素材",但是我不想這樣做,因爲方便後續管理圖標,所以我點擊按鈕"添加至項目"。
選擇剛創建的項目"microui",然後點擊"確定"按鈕。頁面跳轉到圖標管理界面
我們點擊上圖箭頭所指的"下載至本地"
如下圖,我們已經下載到本地了
接下來我們就要使用創建WPF工程了。
VS創建WPF工程:
使用VS創建WPF工程步驟不再贅述,如下創建好的工程
導入IconFont字體到WPF工程:
我們解壓之前下載的download.zip文件夾(解壓後存放路徑沒有要求),解壓後的文件夾內容如下
我們WPF只需要使用其中的iconfont.ttf。
鼠標右擊工程名,依次點擊"添加"\"現有項",選擇iconfont.ttf
點擊"添加"按鈕,可以看到已經被加入到工程中
注意:當字體文件iconfont.ttf添加到項目中後,解壓的download文件夾就不需要了,刪除都可以的,因爲iconfont.ttf已經被自動拷貝到了工程目錄下。
下面我們演示一下如何使用圖標。
使用IconFont圖標:
修改MainWindow.xaml代碼如下
從圖中可以看到我將TextBlock的FontFamily設置爲"/#iconfont",其中符號'/'表示當前程序集根路徑,符號'#'是引用外部字體的固定標識,"iconfont"表示字體的名字。當然這裏的iconfont就和咱們創建項目時的參數有關係了
至於和哪個有關係,後面再講。
FontFamily內容格式一般可以爲"/命名空間;component/[路徑]#[字體名稱]",比如我們這裏也可以設置爲下圖箭頭所指的
這種命名規則是標準靠譜的。
同樣的,我們在編寫的時候,注意到Text值爲"",這是什麼鬼?這個值就是我們添加到IconFont項目的時候,圖標自動添加的unicode值
同時圖標的顏色大小可以使用Foreground和FontSize變化,是不是更方便了。
下面我再移動一下圖標文件的位置,如下圖新建一個文件夾Fonts,把iconfont.ttf拖拽到Fonts文件夾內
代碼修改FontFamily如下
清理並重新生成工程運行
依然可以顯示。拖拽到新文件夾只是爲了演示文件iconfont.ttf添加到其他文件夾時,FontFamily怎麼設置。
創建IconFont時的Symbol前綴:
我之前在創建IconFont工程時提到了,FontClass/Symbol前綴和Font Family內容,這兩個具體是有什麼用?
下面是我另外創建的一個工程
其中Symbol前綴爲:dazhuang
FontFamily內容爲:dzfont
並向其中添加了一個圖標
將其下載到本地,並將iconfont.ttf導入工程後
可以看到箭頭所指的地方變成了我剛纔設置的FontFamily。至於Symbol前綴,實際上在WPF工程裏沒有用到,而是在HTML自動生成的CSS中用到了,
擴展:
你也可以在樣式表中使用,如下我供下載的demo代碼
/////////////////////////////////////////////////////////////////////////////////////////
** 原創文章,轉載請附該部分聲明
** 來源:https://blog.csdn.net/mybelief321
** 作者:玖零大壯
/////////////////////////////////////////////////////////////////////////////////////////