在DrawText中使用自定义字体Wpf C#

时间:2014-04-02 15:48:35

标签: c# wpf xaml fonts

我的项目中的 Resources 文件夹中有一个自定义OTF字体,该文件未安装在我的 Windows 上。 该字体的 Build Action 已设置为 Resource

现在我想使用DrawText方法和FormattedText类在可视图层上写一些文字。

如何为FormattedText使用此自定义字体。我已经知道如何使用下面的代码对XAML中的TextBlock这样说。但是代码隐藏呢?

<TextBlock FontFamily="pack://application:,,,/Resources/#Quicksand Light"> 
    StackOverflow
</TextBlock>

这是我用来定义FormattedText对象的代码。

var f = new FontFamily("pack://application:,,,/Resources/#Quicksand Light");
var typeface = new Typeface(f, new FontStyle(), new FontWeight(), new FontStretch());
var cultureinfo = new CultureInfo("en-us");
var ft = new FormattedText("Stackoverflow", cultureinfo, FlowDirection.LeftToRight,
    typeface, 28, Brushes.White)
dc.DrawText(ft, new Point(0,0));

我的问题是定义字体的字体,以便我可以在fotmattedtext中使用它。

1 个答案:

答案 0 :(得分:4)

这样的事情:

var typeface = new Typeface(new FontFamily(new Uri("pack://application:,,,/"), "/Resources/#Quicksand Light"), FontStyles.Normal, FontWeights.Regular, FontStretches.Normal);