WPF C#设置文本块的字体系列

时间:2010-11-27 22:53:31

标签: c# wpf fonts

我正在寻找正确的sytanx来在xaml.cs文件中设置自定义字体。在.xaml文件中,我可以成功执行此操作:

<TextBlock FontFamily="Resources/#Charlemagne Std" FontSize="22" ... />

但是,我似乎无法在.xaml.cs文件中使用相同的功能。我尝试过这样的效果:

TextBlock tb = new TextBlock();
tb.FontFamily = new FontFamily(new Uri("pack://application:,,,/"), "#Charlemagne Std");

字体位于项目文件夹的Resources文件夹中。字体的名称是Charlemagne Std,字体文件的名称是chalemagnestd-regular.otf。

没有编译错误,但显示的字体似乎不正确。

感谢所有帮助

1 个答案:

答案 0 :(得分:2)

如果字体位于项目文件夹的子文件夹中,则在构造FontFamily对象时需要包含该文件夹路径。使用:

new FontFamily(new Uri("pack://application:,,,/"), "./Resources/#Charlemagne Std");

有关详细信息,请参阅MSDN上的Packaging Fonts with Applications