2011-05-10 84 views
0

事情是,我需要使用函数Graphics.measureString知道多久(以像素为单位)字符串将在我的页面上呈现。事情是,measureString需要知道什么字体家族和字体大小(例如Verdana 11)可以给我的宽度。有关信息,Graphics.measureStrings需要字符串来衡量,字体家族和字体大小,然后它返回一个SizeF对象,从中可以获得宽度属性,所以你知道它在你的网页上的长度(它并不总是尽管准确)。获取代码背后的代码的字体属性

所以,我想知道是否有一种方法从后面的代码页面获取该信息,或者我注定要在我的控件或某些常量类中的某处硬编码。

感谢未来的(帮助)回答

+0

你不需要标题中的asp.net标记,包括它作为标记是推荐的。 – 2011-05-10 14:29:13

+0

好吧,我会确保不要再做一次。 thx – Shadowxvii 2011-05-10 14:35:31

回答

0

如果你控制了runat="server",那么你可以使用Style属性来获取font-familyfont-size

string fontFamily = myControl.Style["font-family"]; 
string fontSize = myControl.Style["font-size"]; 

这将仅适用于内联样式的工作,虽然。

+0

我刚刚通过阅读你的答案(而不是能够使用它)并再次阅读我的问题意识到它可能需要更多的澄清。 实际上,我需要知道调用函数的用户控件(ascx)后面的代码中的font-family和font-size,而不是页面本身。 – Shadowxvii 2011-05-10 14:58:53

+0

@Shadowxvii:因此,您的用户控件位于页面上,并且您想从用户控件访问页面上控件的样式属性,对吗?为了使用我的解决方案(这可能无法工作,取决于所有东西的构建方式!),您可以将控件作为页面上的属性公开,然后使用[this.Parent](http:// weblogs)访问它。 asp.net/gunnarpeipman/archive/2008/05/21/using-parent-page-properties-in-user-control.aspx)。 – Town 2011-05-10 15:14:36

+0

哼,我想我会坚持我现在所拥有的。谢谢您的帮助。 – Shadowxvii 2011-05-10 15:44:30

0

你可以在System.Web.dll中使用Net Framework 4;例如:

CssStyleCollection css = CssStyleTools.Create(); 
css.Value = "border-top:1px dotted #BBB;margin-top: 0px;font-size:12px"; 
Console.WriteLine(css["margin-top"]); //prints "0px" 

你可以看看“Change Font Family and Font Size using HtmlAgilityPack”。