gpt4 book ai didi

c# - WPF 中的嵌入式字体不起作用

转载 作者:行者123 更新时间:2023-11-30 15:27:14 25 4
gpt4 key购买 nike

我有一个 WPF 应用程序,我在其中使用字体“Segoe UI Symbol”中的图标。但是当部署到 Windows 7 时,我意识到图标丢失了,因为字体在 Windows 8 中更新了。

我尝试按照以下说明将字体作为资源嵌入到 WPF 应用程序中:http://msdn.microsoft.com/en-us/library/ms753303.aspx但它不起作用。

最初我有:

<TextBlock FontFamily="Segoe UI Symbol">

在 Windows 8 计算机上运行良好。然后我将 seguisym.ttf 添加到目录“_Resources”,然后使用:

<TextBlock FontFamily="./_Resources/#Segoe UI Symbol">

这不适用于 Windows 8 或 Windows 7!我尝试了 BuildAction 的不同设置:Resource、Embedded Resource 和 Content,但它们都不起作用。

最佳答案

我终于找到了一种使用新版本“Segoe UI Symbol”的方法,即使安装了旧版本(即在 Windows 7 上)也是如此。这种方法也适用于 ClickOnce 安装并且不需要 Bootstrap 。

我猜这个问题是由于名称与 Windows 中已加载的字体冲突引起的。所以我重命名了较新的版本以避免冲突。它有效。

1) Download utility program Typograf from this link: http://www.neuber.com/typograph/
2) Open directory where you have a copy of your font file
3) Click on font in list
4) Click Properties button in bar
5) Click Rename button, specify a new name (I chose "SegoeDynamic") and select where to save the new file
6) Add the new font file to your Visual Studio project directory (my directory is "/_Resources")
7) Use relative path or root path as you wish when referencing the font dynamically

<TextBlock FontFamily="../_Resources/#SegoeDynamic">
<TextBlock FontFamily="pack://application:,,,/_Resources/#SegoeDynamic">

请注意,“Segoe UI Symbol”发布了多个版本,每个版本都添加了更多符号。我至少发现了以下内容:

Windows 7:5.01(823kb)

Windows 8:5.90 (1660kb)

Windows 8.1:6.09 (1740kb)

关于c# - WPF 中的嵌入式字体不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27893433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com