Windows Phone 8中自定义字体的使用方法

5
我在 Windows Phone 8 模拟器上遇到了一个奇怪的问题! 我有一个小测试应用程序,在其中更改主页面上的“页面名称”文本框,以便使用自定义字体显示。 现在在 Visual Studio 设计器中,我可以看到该字体,并且在运行应用程序时,我也可以在模拟器中看到它,所以一切正常...但是当我将主页面移动到名为 View 的文件夹中并更改 WMAppManifest.xml 以反映此移动 > 导航页面现在设置为 View/MainPage.xaml。 我仍然可以在我的设计师中看到这个自定义字体,但不再在模拟器中看到了!! 我还没有拥有 wp8 设备...所以有人可以为我验证一下,如果您尝试将失败项目部署到手机上,是否存在相同的问题? 谁能解释为什么会发生这种情况吗? 在模拟器中无法看到正确的设计非常恼人。工作和失败的项目
3个回答

9

好的,我会尽力帮助您翻译相关的IT技术内容。本文涉及到的问题源于styles.xaml中字体引用的问题。

需要将字体引用的路径修改为完整路径!因此,不要像下面这样设置:

<Setter Property="FontFamily" Value="Fonts/ClementePDae-Light.ttf#ClementePDae" />

将其设置为:

<Setter Property="FontFamily" Value="/PhoneApp1;component/Fonts/ClementePDae-Light.ttf#ClementePDae" />

然后一切都可以运行!


我已经尝试过这个方法,但仍然面临同样的问题:我能在设计师中看到自定义字体,但在模拟器中却无法显示。 - zap92
这是我的代码 <Grid x:Name="ContentPanel"> <TextBlock Text="Lorem Ipsum" FontSize="20" TextWrapping="Wrap" Foreground="#fac258" FontFamily="/Casino;component/Fonts/impact.ttf#impact" Margin="81,194,81,-14" ></TextBlock> </Grid> - zap92
字体名称必须完全一致!可能有什么问题吗? - Depechie

3
我希望您已经找到解决方案了。请查看如何添加自定义字体
这对我在Windows Phone 8(Lumia 920)上起作用。
非常重要的是,在.ttf后面加上字体名称。
如果您在PC上预览ttf文件并写下完全相同的字体名称,您可以找到字体名称。

0

首先,如果你想使用外部字体,你应该将外部ttf文件保存到你的项目中。

然后,你可以使用以下代码:

FontFamily="Helvetica.ttf#Helvetica"

FontFamily="Cookies.ttf#Cookies"    

当.ttf字体文件位于根目录中时,在设计和运行时都可以正常工作。

FontFamily="/FontsTestApp;component/Cookies.ttf#Cookies"    

与上文相同。

FontFamily="/Font/Cookies.ttf#Cookies

当.ttf字体文件在子文件夹“font”中时,在设计和运行时都可以正常工作。

FontFamily="../Fonts/Cookies.ttf#Cookies";

当使用字体的XAML文件位于另一个子文件夹中时,在设计和运行时都可以正常工作。

FontFamily="../Fonts/Cookies.ttf#Cookies";  

如果XAML文件位于根目录中,则字体仅在运行时而非设计时应用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接