gpt4 book ai didi

WPF自定义字体问题

转载 作者:行者123 更新时间:2023-12-04 12:04:46 25 4
gpt4 key购买 nike

这真的很奇怪。在 Blend 4 中,当我在设计器中看到应用程序时,自定义字体可以工作,但是当我运行它时,字体消失了,它又回到了 arial 或其他东西。这是我的 XAML:

<TextBlock Text="Text G" FontFamily="/ProjectName;component/Fonts/#Futura Lt BT" FontSize="48" Background="#FFC44747" />

字体位于名为“Fonts”的文件夹中,我尝试使用该字体的控件位于名为“Controls”的文件夹中。我知道“Fonts”文件夹与“Controls”文件夹的相对位置一定有问题,但我已经尝试了很多东西,但它不起作用。

此外,我在此处放置的 XAML 标记是 Blend 在我选择自定义字体时创建的内容。字体被复制为资源(我已经检查了 csprof 文件,它就在那里)。

有任何想法吗?这已经踢了我几个小时了。

谢谢。

最佳答案

While I understand that this is far too late to help the question author, I am leaving this to help future viewers of this question.



本回答中的信息来自 Packaging Fonts with Applications MSDN 上的页面:

将字体添加为内容项

您可以将字体作为独立于应用程序程序集文件的项目内容项添加到应用程序中。这意味着内容项不会作为资源嵌入到程序集中。以下项目文件示例显示了如何定义内容项。
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Other project build settings ... -->

<ItemGroup>
<Content Include="Peric.ttf" />
<Content Include="Pericl.ttf" />
</ItemGroup>
</Project>

为了确保应用程序可以在运行时使用字体,字体在应用程序的部署目录中必须是可访问的。应用程序项目文件中的元素允许您在构建过程中自动将字体复制到应用程序部署目录。以下项目文件示例显示了如何将字体复制到部署目录。
<ItemGroup>
<Content Include="Peric.ttf">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Pericl.ttf">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>

将字体添加为资源项

您可以将字体作为嵌入在应用程序程序集文件中的项目资源项添加到应用程序中。使用单独的资源子目录有助于组织应用程序的项目文件。以下项目文件示例显示了如何将字体定义为单独子目录中的资源项。
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Other project build settings ... -->

<ItemGroup>
<Resource Include="resources\Peric.ttf" />
<Resource Include="resources\Pericl.ttf" />
</ItemGroup>
</Project>

当您将字体作为资源添加到应用程序时,请确保您设置的是元素,而不是应用程序项目文件中的元素。不支持构建操作的元素。

以下标记示例展示了如何引用应用程序的字体资源。
<TextBlock FontFamily="./resources/#Pericles Light">
Aegean Sea
</TextBlock>

有关从代码和其他有用信息中引用字体资源的详细信息,请访问上述链接。

关于WPF自定义字体问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6516639/

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