当前位置: 首页 > news >正文

C# 在WPF .net8.0框架中使用FontAwesome 6和IconFont图标字体

文章目录

    • 一、在WPF中使用FontAwesome 6图标字体
      • 1.1 下载FontAwesome
      • 1.2 在WPF中配置引用
        • 1.2.1 引用FontAwesome字体文件
        • 1.2.2 将字体文件已资源的形式生成
      • 1.3 在项目中应用
        • 1.3.1 使用方式一:局部引用
        • 1.3.2 使用方式二:单个文件中全局引用
        • 1.3.3 使用方式三:整个项目中全局引用
    • 1.4 效果图
    • 二、在WPF中使用IconFont图标字体
      • 2.1 下载IconFont字体文件
      • 2.2 在WPF中配置引用
        • 2.2.1 引用IconFont字体文件
        • 2.2.2 将字体文件已资源的形式生成
      • 2.3 在项目中应用
        • 2.3.1 使用方式一:局部引用
        • 2.3.2 使用方式二:单个文件中全局引用
        • 2.3.3 使用方式三:整个项目中全局引用
    • 2.4 效果图

一、在WPF中使用FontAwesome 6图标字体

1.1 下载FontAwesome

官网下载地址:https://fontawesome.com/download
选择下载:Free For Desktop
在这里插入图片描述
下载完成后解压可在otfs文件下找到如下三个文件:
在这里插入图片描述

1.2 在WPF中配置引用

1.2.1 引用FontAwesome字体文件

在WPF项目中新建文件夹,如Fonts,将上面下载解压好的三个ttf文件复制到Fonts目录下
在这里插入图片描述

1.2.2 将字体文件已资源的形式生成

如下图所示:
选择Font Awesome 6 Brands-Regular-400.ttf, Font Awesome 6 Free-Regular-400.ttf, Font Awesome 6 Free-Solid-900.ttf,右键【属性】

  • 生成操作:资源
  • 复制操作:如果较新则复制始终复制

在这里插入图片描述

1.3 在项目中应用

1.3.1 使用方式一:局部引用
<Label  FontFamily="pack://application:,,,/Fonts/#Font Awesome 6 Free Solid" FontSize="128" Content="&#xf8cc;" Foreground="Red"/>

其中/Fonts为Font Awesome 6 Free-Solid-900.ttf坐在的目录,#之后为字体名称,字体名称可双击Font Awesome 6 Free-Solid-900.ttf文件查询
在这里插入图片描述
Content="&#xf8cc;"为对应图标的十六进制,具体的值可以通过官网https://fontawesome.com/search来进行查询
在这里插入图片描述

1.3.2 使用方式二:单个文件中全局引用

在mainwindow.xml中设置样式

<Window.Resources><Style x:Key="FontAwesome"><Setter Property="TextElement.FontFamily" Value="pack://application:,,,/Fonts/#Font Awesome 6 Free Solid"></Setter></Style>
</Window.Resources>

在控件中添加style属性的配置,其中IconFont对应style中配置的x:key的值

<Label Style="{DynamicResource FontAwesome}" FontSize="128" Content="&#xf8cc;" Foreground="Lime"/>
1.3.3 使用方式三:整个项目中全局引用

在App.xml中设置样式

<Application.Resources><ResourceDictionary><Style x:Key="AppFontAwesome"><Setter Property="TextElement.FontFamily" Value="pack://application:,,,/Fonts/#Font Awesome 6 Free Solid"></Setter></Style></ResourceDictionary>
</Application.Resources>

在控制中引用

<Label Style="{DynamicResource AppFontAwesome}" FontSize="128" Content="&#xf8cc;" Foreground="Blue"/>

1.4 效果图

在这里插入图片描述

二、在WPF中使用IconFont图标字体

2.1 下载IconFont字体文件

iconfont官网:https://www.iconfont.cn/?spm=a313x.search_index.i3.2.411c3a81NwQdm7

a. 搜索到需要的图标,然后点击下图按钮添加入库
在这里插入图片描述
b. 完成所有需要的图标入库之后,可以点击后侧类似购物车的图标;在弹出的界面中,可以查看所有入库的图标,然后点击【下载代码】

在这里插入图片描述

2.2 在WPF中配置引用

2.2.1 引用IconFont字体文件

将解压得到的6个文件全部复制到项目中去,比如这边复制的目录为IconFont文件夹
注:.ttf为字体文件
在这里插入图片描述

2.2.2 将字体文件已资源的形式生成

如下图所示:
选择iconfont.ttf,右键【属性】

  • 生成操作:资源
  • 复制操作:如果较新则复制始终复制
    在这里插入图片描述

2.3 在项目中应用

2.3.1 使用方式一:局部引用
<Label  FontFamily="pack://application:,,,/IconFont/#iconfont" FontSize="128" Content="&#xe8a7;" Foreground="Red"/>

其中/IconFont为iconfont.ttf坐在的目录,#之后为字体名称,字体名称可双击iconfont.ttf文件查询
在这里插入图片描述
Content="&#xe8a7;"为对应图标的十六进制,具体的值可以通过打开demo_index.html来进行查询
在这里插入图片描述

2.3.2 使用方式二:单个文件中全局引用

在mainwindow.xml中设置样式

<Window.Resources><Style x:Key="IconFont"><Setter Property="TextElement.FontFamily" Value="pack://application:,,,/IconFont/#iconfont"></Setter></Style>
</Window.Resources>

在控件中添加style属性的配置,其中IconFont对应style中配置的x:key的值

<Label Style="{DynamicResource IconFont}" FontSize="128" Content="&#xe8a7;" Foreground="Lime"/>
2.3.3 使用方式三:整个项目中全局引用

在App.xml中设置样式

<Application.Resources><ResourceDictionary><Style x:Key="AppIconFont"><Setter Property="TextElement.FontFamily" Value="pack://application:,,,/IconFont/#iconfont"></Setter></Style></ResourceDictionary>
</Application.Resources>

在控制中引用

<Label Style="{DynamicResource AppIconFont}" FontSize="128" Content="&#xe8a7;" Foreground="Blue"/>

2.4 效果图

在这里插入图片描述
##【参考程序】
参考程序下载:WPFICONFontApp.rar

相关文章:

C# 在WPF .net8.0框架中使用FontAwesome 6和IconFont图标字体

文章目录 一、在WPF中使用FontAwesome 6图标字体1.1 下载FontAwesome1.2 在WPF中配置引用1.2.1 引用FontAwesome字体文件1.2.2 将字体文件已资源的形式生成 1.3 在项目中应用1.3.1 使用方式一&#xff1a;局部引用1.3.2 使用方式二&#xff1a;单个文件中全局引用1.3.3 使用方式…...

万能自定义预约小程序源码系统 适合任何行业在线预约报名 前后端分离 带完整的安装代码包以及搭建教程

系统概述 在当今数字化时代&#xff0c;线上预约已成为各行各业不可或缺的一部分。为满足广大企业和个人对在线预约系统的需求&#xff0c;我们特别推出了这款“万能自定义预约小程序源码系统”。该系统以其高度的灵活性和可扩展性&#xff0c;为各行各业提供了完美的在线预约…...

【MySQL备份】mysqldump篇

目录 1.简介 2.基本用途 3.命令格式 3.1常用选项 3.2常用命令 4.备份脚本 5.定时执行备份脚本 1.简介 mysqldump 是 MySQL 数据库管理系统的命令行实用程序&#xff0c;用于创建数据库的逻辑备份。它能够导出数据库的结构&#xff08;如表结构、视图、触发器等&#xf…...

控制台扫雷(C语言实现)

目录 博文目的实现思路项目创建文件解释 具体实现判断玩家进行游戏还是退出扫雷棋盘的确定地图初始化埋雷玩家扫雷的实现雷判断函数 源码game.cgame.h扫雷.c 博文目的 相信不少人都学习了c语言的函数&#xff0c;循环&#xff0c;分支那我们就可以写一个控制台的扫雷小游戏来检…...

操作系统期末复习 | 批处理程序 | PV实现同步互斥 | 调度算法 | 页面置换算法 | 磁盘调度算法

操作系统引论 批处理程序 单道批处理&#xff1a;引入脱机输入/输出技术&#xff0c;并由监督程序负责控制作业的输入、输出。主要优点是缓解了一定程度的人机速度矛盾&#xff0c;资源利用率有所提升。主要缺点是内存中仅能有一道程序运行&#xff0c;只有该程序运行结束之后…...

字符串的六种遍历方式

在 Java 中&#xff0c;有多种遍历字符串的方法。以下是几种常见的遍历字符串的方法&#xff0c;并附有示例代码 1. 使用 for 循环 这是最常见和基础的遍历方法&#xff0c;通过索引访问每个字符。 public class StringTraversal {public static void main(String[] args) {S…...

在码云(Gitee)上建立分支(Branch)的步骤如下:

步骤一&#xff1a;登录码云 首先&#xff0c;打开码云的官方网站&#xff08;gitee.com&#xff09;&#xff0c;输入用户名和密码登录你的账号。 步骤二&#xff1a;创建仓库 登录后&#xff0c;在页面右上方的搜索框中输入仓库名称&#xff0c;并点击“创建”按钮创建新的仓…...

JVM专题四:JVM的类加载机制

Java中类的加载阶段 类加载 Java中的类加载机制是Java运行时环境的一部分&#xff0c;确保Java类可以被JVM&#xff08;Java虚拟机&#xff09;正确地加载和执行。类加载机制主要分为以下几个阶段&#xff1a; 加载&#xff08;Loading&#xff09;&#xff1a;这个阶段&#x…...

Python爬取中国天气网天气数据.

一、主题式网络爬虫设计方案 1.主题式网络爬虫名称 名称&#xff1a;Python爬取中国天气网天气数据 2.主题式网络爬虫爬取的内容与数据特征分析 本次爬虫主要爬取中国天气网天气数据 3.主题式网络爬虫设计方案概述&#xff08;包括实现思路与技术难点&#xff09; reques…...

EXCEL快速填充空白内容

** EXCEL快速填充空白内容 ** 1.全选所有需要填充的内容&#xff0c;按住电脑的F5或者CTRLG点击定位 2.可以看到空白处被自动选定&#xff0c;之后按电脑和⬆&#xff0c;最后CTRLenter 可以看到空白处已经被填充。...

CBSD创建和管理bhyve容器Ubuntu@FreeBSD

bhyve介绍&#xff1a;bhyve&#xff1a;FreeBSD下的原生虚拟机管理器_freebsd 虚拟化平台bhyve-CSDN博客 两个bhyve的管理软件&#xff1a;使用bvm管理bhyve虚拟机管理系统FreeBSD-CSDN博客 vm-bhyve&#xff1a;bhyve虚拟机的管理系统FreeBSD-CSDN博客 现在&#xff0c;我…...

STM32开发实战:SPI接口在W25Q64 Flash存储器中的应用

摘要 本文将深入探讨STM32微控制器如何利用SPI接口与W25Q64 Flash存储器进行通信。W25Q64是一款常用的SPI串行Flash存储器&#xff0c;具有8Mbit的存储容量。本教程将指导读者完成硬件连接、SPI配置、读写操作&#xff0c;并提供实际的代码实现。 1. SPI接口概述 SPI是一种串…...

python一些进阶用法:hook 钩子函数以及Registry机制

写在前面 一句话讲&#xff0c;register机制 和 hook 都是函数/类 调用和传参机制的一种灵活运用&#xff0c;将函数作为传参对象&#xff0c;进行回调和封装&#xff0c;通常扩展了或修改了原始函数的行为&#xff1b;这些高级用法都是编程经验中沉淀下来的常用范式&#xff0…...

工作实践:11种API性能优化方法

一、索引优化 接口性能优化时&#xff0c;大家第一个想到的通常是&#xff1a;优化索引。 确实&#xff0c;优化索引的成本是最小的。 你可以通过查看线上日志或监控报告&#xff0c;发现某个接口使用的某条SQL语句耗时较长。 此时&#xff0c;你可能会有以下疑问&#xff…...

正版软件 | WIFbox:智能化文件管理工具,让效率与隐私并行

在数字化办公日益普及的今天&#xff0c;文件管理成为了提升工作效率的关键。WIFbox 一款智能文件管理工具&#xff0c;利用强大的人工智能技术&#xff0c;帮助您快速对文件进行分类&#xff0c;完成复杂的智能文件分类任务。 智能分类&#xff0c;效率倍增 WIFbox 通过精细化…...

Postman接口工具实战

为了更好地展示Postman接口测试的实战过程&#xff0c;我将以一个简单的实战示例来说明如何使用Postman完成一个API的测试。假设我们要测试一个假想的天气查询API&#xff0c;该API允许用户通过城市名查询天气情况。我们将执行以下步骤&#xff1a; 1. 准备工作 确保已经安装…...

江协科技51单片机学习- p17 定时器

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…...

【D3.js in Action 3 精译】前言

早在 2017 年&#xff0c;我还是一名渴望迈出职业生涯关键一步的前端开发者。虽然我很热衷于网站开发&#xff0c;但总感觉缺了点什么。我一直希望自己的工程专业背景和对教学的热爱能与新的编程技能相结合。就在这时&#xff0c;搭档建议我学学数据可视化。出于某种原因&#…...

Java SE入门及基础(58) 并发 进程与线程概念

目录 并发 进程和线程 1. 进程和线程 2. 进程 3.线程 总结 并发 并发(Concurrency) Computer users take it for granted that their systems can do more than one thing at a time. They assume that they can continue to work in a word processor, while other app…...

放松一下,简简单单了

哈哈哈哈哈...

【STM32F4系列】【HAL库】【实战解析】MPU6050 DMP姿态解算与I2C通信优化

1. MPU6050与DMP库基础解析 第一次接触MPU6050时&#xff0c;我被它小巧的体积和强大的功能震撼到了。这个售价不到10元的芯片&#xff0c;居然能同时测量三轴角加速度和三轴线加速度。在实际项目中&#xff0c;我发现直接读取原始数据并不难&#xff0c;但要想获得稳定的姿态信…...

一文搞懂Agent三大核心技术:Function Calling、MCP、A2A,小白也能轻松收藏学习!

本文详细解析了AI Agent的三大核心技术&#xff1a;Function Calling、MCP和A2A。Function Calling使AI能够主动获取外部信息&#xff0c;MCP为工具接入提供了标准化接口&#xff0c;而A2A则实现了多智能体之间的协作。通过这三个技术的演进&#xff0c;AI Agent的能力从点对点…...

告别单行输入:在Python IDLE Shell中轻松编辑多行代码的完整指南

告别单行输入&#xff1a;在Python IDLE Shell中轻松编辑多行代码的完整指南 对于Python初学者来说&#xff0c;IDLE Shell是一个既熟悉又陌生的存在。熟悉是因为它随Python安装包默认提供&#xff0c;陌生则源于大多数人仅将其视为简单的交互式命令行工具。实际上&#xff0c;…...

探索前沿技术趋势:2024年最值得关注的创新应用场景

1. 生成式AI的爆发式应用 2024年最让人兴奋的技术趋势&#xff0c;莫过于生成式AI从实验室走向千家万户。我最近测试了十几个主流AI创作工具&#xff0c;发现它们已经能完成许多过去认为"只有人类能做到"的任务。比如用Midjourney生成产品设计图&#xff0c;只需要简…...

vLLM-v0.17.1参数详解:--disable-log-stats与--log-level日志调优

vLLM-v0.17.1参数详解&#xff1a;--disable-log-stats与--log-level日志调优 1. vLLM框架简介 vLLM是一个专为大型语言模型(LLM)设计的高性能推理和服务库&#xff0c;以其出色的吞吐量和易用性著称。这个项目最初由加州大学伯克利分校的天空计算实验室开发&#xff0c;现在…...

阿联酋人工智能大学:AI能在战争迷雾中做出理性判断吗?

这项由阿联酋穆罕默德本扎耶德人工智能大学和美国马里兰大学共同完成的研究发表于2026年3月&#xff0c;论文编号为arXiv:2603.16642v1。有兴趣深入了解的读者可以通过该编号查询完整论文。在人类历史上&#xff0c;预测战争走向一直是个极其困难的任务。就像我们很难在暴风雨中…...

制造业生产管理应用搭建指南:轻流无代码平台完整实施流程——生产效率提升 300% 方法论

制造业生产管理应用搭建指南&#xff1a;轻流无代码平台完整实施流程——生产效率提升 300% 方法论制造业生产管理应用搭建指南&#xff1a;轻流无代码平台完整实施流程——生产效率提升 300% 方法论引言&#xff1a;背景与重要性工信部《智能制造发展规划》明确提出&#xff0…...

WebGL BIM可视化:浏览器端BIM解决方案的技术实践与行业应用

WebGL BIM可视化&#xff1a;浏览器端BIM解决方案的技术实践与行业应用 【免费下载链接】xeokit-bim-viewer A browser-based BIM viewer, built on the xeokit SDK 项目地址: https://gitcode.com/gh_mirrors/xe/xeokit-bim-viewer 如何解决浏览器端BIM模型加载慢、操…...

SpringBoot3 + JetCache实战:如何用两级缓存把接口性能提升10倍?

SpringBoot3 JetCache实战&#xff1a;高并发场景下的缓存架构设计与性能优化 在电商秒杀、实时数据查询等高并发场景中&#xff0c;传统数据库直接承受流量冲击往往会导致系统崩溃。去年双十一期间&#xff0c;某头部电商平台通过多级缓存架构成功扛住了每秒百万级的查询请求…...

从Word2Vec到BERT:聊聊Embedding技术这十年,我们踩过的‘坑’和收获的‘宝’

从Word2Vec到BERT&#xff1a;Embedding技术的十年演进与实战智慧 记得2013年第一次用Word2Vec处理电商评论时&#xff0c;我们团队对着"iPhone"和"安卓手机"的向量相似度兴奋不已——这两个在传统词袋模型里毫无关联的词&#xff0c;在向量空间中的余弦相…...