我的项目中的 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中使用它。
答案 0 :(得分:4)
这样的事情:
var typeface = new Typeface(new FontFamily(new Uri("pack://application:,,,/"), "/Resources/#Quicksand Light"), FontStyles.Normal, FontWeights.Regular, FontStretches.Normal);