Silverlight中的应用程序范围的字体资源

时间:2010-12-03 01:39:07

标签: silverlight fonts

我正在查看是否可以在Silverlight控件中使用应用程序范围的字体,可以在application.resources中设置,然后在整个应用程序中使用。他们不需要指定关于字体的其他内容,如粗体或斜体,只需要名称。

大多数情况下,这适用于需要嵌入到应用程序中的自定义字体。例如,我正在寻找一些简单的东西(不是任何特定的控件或控件类型)......

<Setter x:Key="My First Font"
        Property="FontFamily"
        Value="VINERTIC.TTF#Viner Hand ITC" />

然后在任何给定的控制中我会输入...

<TextBlock FontFamily="{StaticResource "My First Font"}"
           x:Name="ApplicationTitle"
           Text="NEXT PAGE" Foreground="Red"/>

...或...

FontFamily="{Binding "My First Font"}"

或其他一些东西。

我知道我所做的不起作用,但这是理想的效果。

我似乎无法找到有关如何设置应用范围字体系列的任何文档。有什么建议吗?

1 个答案:

答案 0 :(得分:4)

以下是我认为可以帮助您入门的一些信息。

首先,我知道将字体嵌入共享库(例如:Silverlight类库)的最简单方法是执行以下操作:

  1. 拥有一个类库,并知道它的默认命名空间。对于此示例,类库的默认命名空间为 Common.Windows
  2. 有一个字体。对于此示例, Action Man Bold.ttf ,其中包含指定字体 Action Man
  3. 在共享库项目中的某处添加字体。例如,资产/字体文件夹。
  4. 将文件的构建操作设置为资源
  5. 构建项目。
  6. 按照这些步骤操作后,您可以随意参考字体,包括样式,语法类似于下面的文本块:

    <TextBlock
     FontFamily="/Common.Windows;component/Assets/Fonts/Action Man Bold.ttf#Action Man" />
    

    请注意,上面的FontFamily表达式在引用项目中的容器项目 中工作。我没有用拉链档案来测试这个过程,但是我敢打赌花园里有一块奇特的岩石,它仍然可以使用。

    这应该让你开始。如果您有兴趣进行额外(并且有用)的步骤来声明样式中的字体,并使用控件上的样式,请考虑查看此资源:

    http://www.silverlight.net/learn/quickstarts/control-styles/