【问题标题】:Font in silverlight for Windows Phone 7Windows Phone 7 Silverlight 中的字体
【发布时间】:2011-11-27 05:11:17
【问题描述】:

我想在 Windows Phone 7 的 silverlight 应用程序中为文本框使用一种字体。该字体不包含在默认字体列表中。

这是将字体应用到文本框的 xaml 代码:

<TextBlock Grid.Row="1" Height="95" HorizontalAlignment="Left" Margin="527,78,0,0" Name="textBox" Text="0" VerticalAlignment="Top" FontSize="72" Width="70" FontFamily="/MyAppNamespace;component/Fonts/Fonts.zip#Papyrus"/>

字体包含在 Fonts 文件夹中。 此页面的 XAML 视图窗口显示了我想要的确切字体样式。但是当我尝试将应用程序部署到我的 Samsung Omnia 7 时,使用的字体仍然是 Segoe WP(文本框的默认字体)。

那么这里有什么问题呢?

【问题讨论】:

    标签: silverlight xaml windows-phone-7.1


    【解决方案1】:

    您需要在应用程序中包含该字体。最简单的方法是进入 Blend,选择 TextBlock 元素,进入 Text 属性部分,然后单击 Embed 复选框。请注意,如果您使用单独的构建服务器,这将要求您在该系统上安装 Blend SDK。 (对于字体嵌入,Blend 使用自定义构建目标。我相信是 SDK 将此构建目标添加到目标系统。)

    您看到 Segoe WP 的原因是找不到您指定的字体,因此运行时正在回退到它知道的字体。您没有指定任何备用字体,所以它使用 Segoe WP 的默认值。

    【讨论】:

    • 正如我所说,我在项目的 Fonts 文件夹中包含了字体,Visual Studio 中的 XAML 视图窗口也在文本框中显示了所需的字体。但是当我将应用程序部署到手机时,出现的字体只是默认字体。
    • 还有一件事是我创建了 Fonts 文件夹并手动添加了字体,但我认为这不是问题,因为 XAML 视图可以显示带有我添加的字体的文本。
    • TTF 文件的构建操作是什么?它是如何包含在 csproj 文件中的? (给我看 XML)通常只包括字体文件夹中的文件是不够的。
    • 我猜你从示例中复制了一些代码。但是,原始代码是在 Blend 中完成的。这意味着您不能手动添加字体;你必须将它嵌入到 Blend 中。另一种选择是将字体文件添加到您的项目并将构建操作设置为内容,然后将您的 XAML 更改为“Fonts.zip#”部分。
    • 假设您的字体文件的名称是 Papyrus.ttf 并且它具有 Content 的构建操作,将您的 FontFamily 从 "/MyAppNamespace;component/Fonts/Fonts.zip#Papyrus" 更改为 "/MyAppNamespace ;component/Fonts/Papyrus.ttf".
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 2011-06-14
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多