我正在尝试在我的应用程序中添加自定义字体作为资源。 我在应用程序中有一个“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" />
但我没有看到人们说的字体。我做错了吗?
答案 0 :(得分:19)
您可能需要检查字体名称,您需要指定字体名称而不是文件名称。
双击字体文件,它应显示“字体名称:”,这是您想要确定的样式。
答案 1 :(得分:6)
试试这个
<Window.Resources>
<Style x:Key="Gotham-XLight">
<Setter Property="TextElement.FontFamily" Value="CustomFonts/#Gotham-XLight" />
</Style>
</Window.Resources>
另外,如果您不打算在运行时更改样式{StaticResource Gotham-XLight}
,那么性能会更高。
答案 2 :(得分: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"></TextBlock>
</Button>
但是,我不知道#FontAwesome是否是字体的嵌入名称,还是我重命名.ttf文件的结果。
希望有所帮助!
答案 3 :(得分:0)
最新回复,但值得一提。要添加将在窗口中全局应用的自定义字体,您可以将其添加到csproj文件中,以将项目的Fonts文件夹中的字体作为资源包括在内。
<ItemGroup>
<Resource Include="Fonts\*.ttf" />
</ItemGroup>
然后在XAML窗口中,可以在Window部分中指定FontFamily:
<Window x:Class="Namespace.MainWindow"
...
FontFamily="/Fonts/#[FONT NAME]"
Title="">
<Grid>
...
</Grid>
</Window>
我希望这可以对某人有所帮助,因为我花了一些时间来弄清楚。