15

我正在尝试在我的应用程序中添加自定义字体作为资源。我在应用程序中有一个“CustomFont”目录,其中的所有字体都设置为“Resource”

<Window.Resources>
    <Style x:Key="Gotham-XLight">
        <Setter Property="TextElement.FontFamily" 
                Value="/CustomFonts;Component/#Gotham-XLight" />
    </Style>
</Window.Resources>

然后在我的 TextBlock 上我有这个:(在网格内)

<TextBlock x:Name="TimeTextBlock" Style="{DynamicResource Gotham-XLight}" 
           TextAlignment="Center" FontSize="25" FontWeight="Bold" 
           Foreground="White" Text="TextBlockTimer" 
           Margin="105,242.974,0,226.975" HorizontalAlignment="Left" 
           Width="221.919" />

但我没有像人们说的那样看到我的字体。难道我做错了什么?

4

4 回答 4

20

您可能想要检查字体的名称,您需要指定字体的名称而不是文件的名称。

双击字体文件,它应该显示一个“字体名称:”,这就是您要确保在您的样式中指定的内容。

于 2008-12-11T05:58:34.300 回答
7

试试这个

<Window.Resources>
    <Style x:Key="Gotham-XLight">
        <Setter Property="TextElement.FontFamily" Value="CustomFonts/#Gotham-XLight" />
    </Style>
</Window.Resources>

此外,如果您不打算在运行时更改样式,{StaticResource Gotham-XLight}则性能会更高。

于 2008-12-11T05:33:34.570 回答
2

在 xaml 我这样做是这样的:

    <Button Grid.Column="1" Grid.RowSpan="2" Name="start" Margin="5" Click="start_Click">
        <TextBlock Name="test" FontFamily="pack://application:,,,/Y_Yoga;Component/Resources/#FontAwesome">&#xF04B;</TextBlock>
    </Button>

但是,我不知道#FontAwesome 是字体的嵌入名称还是我重命名了 .ttf 文件的结果。

希望对您有所帮助!

于 2013-05-24T10:20:02.620 回答
1

迟到的回复,但值得一提。要添加将在您的窗口中全局应用的自定义字体,您可以将其添加到您的 csproj 文件中,以将项目的 Fonts 文件夹中的字体作为资源包含在内。

 <ItemGroup>
    <Resource Include="Fonts\*.ttf" />
 </ItemGroup>

然后在您的窗口 XAML 中,您可以在窗口部分指定 FontFamily:

<Window x:Class="Namespace.MainWindow"
    ...
    FontFamily="/Fonts/#[FONT NAME]"
    Title="">
  <Grid>
    ...
  </Grid>
</Window>

我希望这可以帮助某人,因为我花了一些时间来弄清楚。

于 2020-02-11T14:37:32.390 回答