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

WinUI 3桌面应用自定义字体部署相关问题咨询

WinUI 3 桌面应用自定义字体部署问题解答

问题1:准确获取#后的字体家族名称

无需猜测,用以下两种可靠方法:

  • PowerShell脚本查询:创建并执行以下脚本,直接输出字体内部家族名称:
    # 替换为你的字体文件绝对路径
    $fontPath = "C:\Projects\YourApp\Sources\Fonts\Raleway-VariableFont_wght.ttf"
    $fontCollection = New-Object System.Drawing.Text.PrivateFontCollection
    $fontCollection.AddFontFile($fontPath)
    $fontCollection.Families | ForEach-Object { Write-Host "字体家族名称:$($_.Name)" }
    
  • 文件属性查看:右键字体文件 → 属性 → 详细信息,查看「字体家族」或「标题」字段,该字段值即为#后需要填写的内容。

问题2:修改字体文件名后字体失效的原因与解决

核心原因是VS缓存或文件部署设置问题,解决步骤:

  1. 检查字体文件属性:右键文件 → 属性,取消「只读」勾选;
  2. 清理项目缓存:在VS中点击「项目」→「清理解决方案」,手动删除项目目录下的bin和obj文件夹;
  3. 确认部署设置:右键字体文件 → 属性 → 高级,将「复制到输出目录」设置为「始终复制」,确保修改后的文件能同步到输出目录;
  4. 重新生成解决方案并运行应用。

问题3:Google Fonts Raleway可变字体无法生效的解决

按以下步骤排查:

  1. 确认字体家族名称:用问题1的方法获取Raleway可变字体的内部名称,通常为Raleway,确保资源定义中#后的名称完全匹配;
  2. 检查文件部署:将Raleway的两个字体文件的「复制到输出目录」设为「始终复制」,确保生成后输出目录中存在该文件;
  3. 正确引用可变字体参数:可变字体可通过FontWeight和FontStyle控制样式,示例:
    <TextBlock FontFamily="{StaticResource Font1}" Text="Italic Raleway" FontStyle="Italic" FontWeight="300"/>
    <TextBlock FontFamily="{StaticResource Font2}" Text="Bold Raleway" FontWeight="700"/>
    
  4. 简化路径排查:暂时将字体文件移至项目根目录,修改资源路径为/Raleway-VariableFont_wght.ttf#Raleway,排除路径层级问题;
  5. 清理缓存:执行问题2中的缓存清理步骤,重新生成项目。

内容的提问来源于stack exchange,提问作者Георгий Попов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 00:22:22