当前位置: 首页 > 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…...

放松一下,简简单单了

哈哈哈哈哈...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...