You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AvalonEdit中使用嵌入资源字体失败,求解决方案

问题分析与解决

你的代码主要存在两个核心问题:

1. FontFamily的引用格式错误

嵌入资源字体的FontFamily构造参数格式不符合WPF资源引用规范,你使用的./#pixels.ttf缺少程序集名称、完整的资源路径,且混淆了文件名和字体内部名称的位置。

2. 混淆了字体文件名与字体实际名称

#后缀需要填写的是字体的内部实际名称(打开字体文件后标题栏显示的名称),而非.ttf文件名。比如你的文件叫pixels.ttf,但字体内部名称可能是Pixel Regular这类标识。


修正后的实现步骤

第一步:确认字体的嵌入配置

确保字体文件的生成操作设置为「嵌入的资源」,如果字体放在项目的Fonts子文件夹下,资源路径对应为/Fonts/pixels.ttf。

第二步:获取字体的实际名称

右键打开pixels.ttf文件,查看窗口标题栏的名称(比如标题显示「Pixels Mono」,则实际名称为Pixels Mono)。

第三步:修正代码

假设你的程序集名称是YourAppName,字体放在项目根目录,字体实际名称为Pixels,代码修改如下:

var newEditor = new TextEditor();
newEditor.SyntaxHighlighting = highlighter;

// 正确的嵌入资源字体引用格式
var customFont = new FontFamily("pack://application:,,,/YourAppName;component/pixels.ttf#Pixels");

// 只需设置Editor的FontFamily,TextArea会自动继承该配置
newEditor.FontFamily = customFont;

如果字体在Fonts文件夹下,路径调整为/Fonts/pixels.ttf:

var customFont = new FontFamily("pack://application:,,,/YourAppName;component/Fonts/pixels.ttf#Pixels");

内容的提问来源于stack exchange,提问作者TheGrovesy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 10:14:58