2013-06-13 39 views
1

任何幫助將是偉大的,先謝謝你。現在,我硬編碼的每個字符大小如何獲取字符大小?

such as A = 8px and B = 7px etc 

,並在哈希表中存儲

我的當前頁面有從數據庫

採取每個類別菜單,以便菜單可以改變時需要

例如,我可以在菜單部分有10個類別,如評論,聯繫我們和產品。

問題是菜單部分的長度在寬度

,將在瀏覽器的一些正確顯示諸如IE 7-10 1000像素和在鉻它會超過過流至側面的長度。

根據瀏覽器的不同,它只是字符的大小。

所以每個類別都適合在菜單中。他們是一種方法或某種方式來獲取單詞的大小,以便它能正確顯示在主要瀏覽器上?

謝謝抱歉的措辭和語法英語不是我的第一語言。

+0

我不明白你的問題是什麼。 –

+0

@AustinBrunkhorst,從我收集的OP中想要測量前面的所有字符,以便可以根據特定字體確定字符串的長度。 –

+2

我建議你看一下CSS單位:http://www.w3schools.com/cssref/css_units.asp,並讓你的應用程序使用動態維度,如寬度的百分比,也可能是字體大小。 –

回答

2

爲此,您必須聲明字典並將其存儲在Application中。我要留下這些細節,但聲明可能是Dictionary<char, int>。然後你需要一個chars數組來列出你想測量的字符。它可能是這樣定義的char[] chars = new char[] { 'a', 'b', ... }

同樣,這兩者都需要存儲在Application中。

然後建立你可能會做這樣的事情(在Global.asax文件)字典:

var b = new Bitmap(500, 200); 
var g = Graphics.FromImage(b); 

for (int i = 0; i < chars.Length; i++) 
{ 
    var len = g.MeasureString(chars[i] as string, new Font("Arial", 12)); 
    dict.Add(chars[i], len); 
} 
+0

+0:在顯示測量字符尺寸的方法時,這種方法對ASP.Net來說絕對沒有用處,因爲在服務器上使用'Graphics'有潛在的危險,但更重要的是它與瀏覽器選擇渲染字符時的字體無關。 –

+0

@AlexeiLevenkov,我完全理解你的立場(這是對問題的一個很好的觀點),但它確實解決了OP的問題是? –

+0

不,它不會(因爲你無法獲得瀏覽器在服務器上使用的字體大小,特別是在*頁面被瀏覽器渲染之前*),但OP可能不關心這樣的事情 - 所以這個解決方案可能被接受OP。 –