我正在构建一个wpf应用程序,我想在我的应用程序中使用Open Sans Regular字体.
我将此链接称为嵌入字体.我将OpenSans Regular.ttf文件添加到项目属性下的资源中.
然后我在我的申请中提到了他们,如下所述:
<Window x:Class="FontEmbeddingDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" FontFamily="Resources/#Open Sans">
<Window.Resources>
</Window.Resources>
<Grid>
<TextBlock Height="100" Text="This is test text." FontSize="14" FontFamily="Resources/#Open Sans"/>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
在Visual Studio的设计器中,我可以看到字体已更改为打开sans但是当我运行应用程序时,它采用系统默认字体(我的系统中的Arial).
如果您需要任何其他信息,请告诉我.
来自MSDN页面:
将字体作为资源添加到应用程序时,请确保设置
<Resource>元素,而不是应用程序项目文件中的元素.<EmbeddedResource>不支持构建操作的元素.
因此,我想,您必须将此字体文件添加到项目中,因为您要添加任何其他文件并将其设置BuildAction为Resource而不是将字体添加到Project Properties下的Resources,这将使其成为EmbeddedResource.
编辑
阅读这个关于如何在WPF应用程序中使用自定义字体的优秀文章.
你也可以通过@Sheridan提到的方式开始工作 - 这是设置BuildAction的Content.但是,这种方法存在的问题是,您的二进制文件中会出现松散的单独文件.用户可能会更改此文件,这可能会导致您的应用出现问题.最好是使用Resource作为BuildAction作为字体被捆绑到组件.