2011-05-10 37 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」。