为什么我不能从资源中获取自定义字体?

时间:2012-07-02 22:57:20

标签: c# wpf silverlight xaml resources

我有一个包含ThemeResources文件的库,其中包含样式。

enter image description here

在Fonts文件夹中,我有一个字体文件BuxtonSketch.ttf。构建操作与RESOURCE一样

enter image description here

在ThemeResources中,我定义了字体:

<FontFamily x:Key="FontFamily-Sketch">pack://application:,,,/Resources/Fonts/#Buxton Sketch</FontFamily>

<Style x:Key="TextNormalStyle" TargetType="TextBlock">
    <Setter Property="FontFamily" Value="{StaticResource FontFamily-Sketch}" />
</Style>

由于我的UserControl调用了ProblemUserControl,我调用了但是没有工作

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Resources/ThemeResources.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

<Grid>
    <TextBlock Text="La pelicula PROMETHEUS!" Style="{StaticResource TextNormalStyle}" />
</Grid>

可能会发生什么?

3 个答案:

答案 0 :(得分:5)

This blogthis blog都使用以下语法来使用自定义字体

博客1:

<TextBlock Text="SOTC Custom Fonts!" FontFamily="VINERITC.TTF#Viner Hand ITC"/>

blog2:

<TextBlock Text="Gothic" FontFamily="./GOTHIC.TTF#Century Gothic"/>

所以对你来说我认为会是

<TextBlock Text="Buxton" FontFamily="BuxtonSketch.TTF#Buxton Sketch"/>

或者你的风格

<Style x:Key="TextNormalStyle" TargetType="TextBlock">
    <Setter Property="FontFamily" Value="BuxtonSketch.TTF#Buxton Sketch" />
</Style>

您可能需要包含文件夹位置,但不确定

<TextBlock Text="Buxton" FontFamily="Resources/Fonts/BuxtonSketch.TTF#Buxton Sketch"/>

答案 1 :(得分:0)

此外,您可以将字体添加到.zip文件并访问如下:

<Setter Property="FontFamily" Value="../Resources/Fonts/Fonts.zip#BuxtonSketch"/>

答案 2 :(得分:0)

我花了一整天研究这个问题。将字体复制到项目中时,请确保Visual Studio将这些项目的Build Action设置为Resource。我要做的就是在下拉菜单中对此进行更改。