2010-07-07 41 views
1

我有一個長字符串說例如「它是一個偉大的事情與C#工作」。如何將樣式應用於使用C#的長字符串的字符串的一部分

在上述字符串的子字符串「它偉大」我有一個單獨的字體和顏色格式,其餘的我有不同的字體和顏色格式。如何應用這些樣式並使用圖形繪製圖像。

預期的O/P: 它是一個偉大的事情用C#

工作的任何一個可以幫助我在此。

請讓我知道你是否需要任何更多的細節。

回答

3

字符串本身不存儲字體樣式 - 它們只是存儲一系列文本字符。

如果你想存儲樣式,那麼你將需要更高層次的表示。可能性包括使用RTF(RTF格式)或HTML等現有格式,或者構建自己的格式,使用嵌入文本中的特殊字符代碼來指示樣式的變化。

像RTF或HTML格式的優點是有WinForms控件,您可以將文本放入其中以顯示樣式。 RTF控件還將允許用戶編輯文本。您還可以將文本複製並粘貼到其他應用程序中(在開發過程中以及在正在運行的應用程序中)。

如果您希望自己繪製文本作爲圖形,那麼您可能更喜歡創建自己的格式以使代碼更簡單(HTML和RTF是複雜的格式) - 或者更好 - 使用固定的HTML子集,以便您保持標準兼容,無需實施太多的HTML解析/渲染代碼。

0

您需要爲每種文本風格分別創建fontbrush,將字符串分解爲每個文本的各個部分並分別繪製每個文本。

DrawString重載採取fontbrush參數,你可以使用MeasureString重載之一弄清楚在何處放置文本的下一個位。

如果這是一個重複的要求,您可能需要將您的邏輯包裝在類中以供重用。