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