2014-08-31 135 views
0

我正在使用C#实现的Windows应用程序。其中一个要求是用户能够选择一组字体并将其保存到数据库中。在我需要存储字体的信息是:如何将字体信息存储在数据库中

  • 字体的名称
  • 尺寸
  • 无论是其粗体,斜体,下划线

到目前为止,我有这个信息作为单独的字段存储在数据库中。后者我从这些信息构建Font对象。但是,我发现不可能用所有需要的设置创建一个新对象(例如,粗体和斜体的字体)。

为了说明我做这样的事情(请注意,我用EF工作,所以这些方法都只是为了举例说明):

string font_name = GetFontNameFromDatabase(); 
string font_size = GetFontSizeFromDatabase(); 
... 

Font f = new Font(font_name, font_size); 

我的问题是,是否有存储字体对象以便捷的方式SLQ服务器数据库。也许作为一个二进制字段?

回答

5

可以使用FontConverter类序列化和反序列化的字体:

var fc = new FontConverter(); 
Font f1 = new Font("Times New Roman", 12); 
var fontAsString = fc.ConvertToInvariantString(f1); // "Times New Roman, 12pt" 
Font f2 = (Font)fc.ConvertFromInvariantString(fontAsString); 
Console.WriteLine(f2.ToString()); // [Font: Name=Times New Roman, Size=12, ...] 
相关问题