C# - 阅读&预览字体

时间:2009-07-27 09:09:21

标签: c# fonts

我可以在C#中阅读和预览字体(主要是ttf和otf)吗?我可以/应该使用哪些其他语言?

阅读:

  • 信息如字体系列,字体名称

预览:

  • 使用字体显示一些文字
  • 以任何方式显示所有支持的字体字符?

2 个答案:

答案 0 :(得分:10)

警告:如果要预览OTF字体,请不要使用System.Drawing / System.Windows.Forms。除非他们是伪装的TTF,否则你不会让他们表现出来。 System.Drawing,基于GDI +,只支持TTF字体!

但是,如果您可以使用.NET 3.0,则可以使用

Fonts.GetFontFamilies(location)

来自 System.Windows.Media 命名空间(仅引用PresentationCore.dll)。

FontFamily ,您可以获得单个字体(.ttc文件包含多个'font',但 FontFamily 还结合了各种重量和变体)。从字体,您可以调用 TryGetGlyphTypeface 来获取 GlyphTypeface ,它具有 CharacterToGlyphMap 属性,该属性应该是告诉你物理上支持哪些unicode代码点。

似乎也可以直接使用 GlyphTypeface ,但我认为你无法处理.ttc文件。但是,如果这不相关,只需为每个文件创建一个GlyphTypeface。

我建议不要按顺序尝试所有Unicode代码点。

答案 1 :(得分:0)

要预览字体,您可以将其渲染为如下形式:

public partial class MyForm: Form
{
   .
   .
   .
   public void ShowMyFont()
   {
      Graphics graphics = this.CreateGraphics();
      graphics.DrawString("Hello world!", new Font("Arial", 12), Brushes.Black, 0, 0);
   }
}