如何从字符串中获取字体?

时间:2009-11-03 19:50:35

标签: c# asp.net

System.Web.UI.DataVisualization.Charting.Chart控件中,可以通过引用字体的姓氏来设置字体。我如何在代码中做类似的事情?

 <asp:Chart runat="server">
     <legends>
         <asp:Legend Font="Microsoft Sans Serif, 8.25pt, style=Bold"/>
     </legends>
 </asp:Chart>

如何在代码隐藏中做类似的事情?

chart.Legends[0].Font = Font.???("Microsoft Sans Serif, 8.25pt, style=Bold")

3 个答案:

答案 0 :(得分:5)

System.Drawing.Font班级上使用one of the constructors

chart.Legends[0].Font = new Font("Microsoft Sans Serif", 
                                 8.25,
                                 FontStyle.Bold);

请务必加入System.Drawing以便轻松访问所有相关项目(FontFamilyFontStyle等)。

答案 1 :(得分:2)

你可能能够解析它,假设它总是以这种形式出现:

string[] fontStrings = "Microsoft Sans Serif, 8.25pt, style=Bold".Split(',');
fontStrings[1] = fontStrings[1].Replace("pt", "");
fontStrings[2] = fontStrings[2].Replace("style=", "");
var font = new System.Drawing.Font(
  fontStrings[0],
  float.Parse(fontStrings[1]),
  ((FontStyle)Enum.Parse(typeof(FontStyle), fontStrings[2]))
);

编辑:啊,我这么做了。如果它不是动态的,那么其他答案明显比我的字符串更好。 :)

答案 2 :(得分:1)

使用System.Drawing.Font构造函数的以下重载:

chart.Legends[0].Font = new Font("Microsoft Sans Serif", 8.25, FontStyle.Bold);