在silverlight中添加自定义字体

时间:2016-03-24 14:21:37

标签: c# wpf xaml silverlight fonts

我尝试将google字体添加到我的silverlight项目中。所以我下载了zip并将字体添加到Fonts文件夹: enter image description here

我试着像这样加载它:

<controls:DynamicTextBlock Grid.Column="2"
    Width="200"
    HorizontalAlignment="Left"
    FontSize="{StaticResource FontSize6}"
    FontFamily="/EZTrader;Component/Fonts/#RobotoLight"
    Foreground="White"
    Text="{Binding UserFullName}"
    ToolTipService.ToolTip="{Binding UserFullName}" />

什么也没发生。 我该怎么做才能解决这个问题?

谢谢!

2 个答案:

答案 0 :(得分:2)

如果您使用的是Windows,请使用Windows Font Viewer

打开要使用的字体

检查Font name:。该名称是您在引用它时将使用的名称。 注意:字体名称可能并不总是与.ttf的文件名匹配,也可能包含空格。

您希望确保项目中包含文件的“构建操作”设置为资源,因为您希望能够从xaml引用它。

您可以在App.xaml中为FontFamily创建静态资源,以便在整个项目中引用它。

假设项目的程序集名称为EzTrader.dll

<FontFamily x:Key="RobotoLightFontFamily">/EzTrader;component/Fonts/RobotoLight.ttf#[Font name here]</FontFamily>
<FontFamily x:Key="RobotoThinFontFamily">/EzTrader;component/Fonts/Roboto-Thin.ttf#[Font name here]</FontFamily>
<!-- other font resources -->

然后建立项目。

从那里你应该可以像这样引用它

<controls:DynamicTextBlock Grid.Column="2"
    Width="200"
    HorizontalAlignment="Left"
    FontSize="{StaticResource FontSize6}"
    FontFamily="{StaticResource RobotoLightFontFamily}"
    Foreground="White"
    Text="{Binding UserFullName}"
    ToolTipService.ToolTip="{Binding UserFullName}" />

参考:

How to use your own fonts within Silverlight

Using Custom Fonts in Silverlight

Using built-in, embedded and streamed fonts in Silverlight

答案 1 :(得分:0)

如果可以,请检查字体的显示名称,而不是#后面部分的文件名。它实际上可能是Roboto Light。

<controls:DynamicTextBlock FontFamily="/EZTrader;component/Fonts/RobotoLight.ttf#Roboto Light" />

您可能还需要更改字体文件的构建属性,如下所示:http://geekswithblogs.net/mamta_m/archive/2010/07/01/adding-custom-fonts-to-your-silverlight-application.aspx