這篇文章主要介紹XAML中如何處理空格,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯(lián)公司是一家網(wǎng)站設(shè)計(jì)公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營產(chǎn)品:響應(yīng)式網(wǎng)站建設(shè)、成都品牌網(wǎng)站建設(shè)、營銷型網(wǎng)站。我們專注企業(yè)品牌在網(wǎng)站中的整體樹立,網(wǎng)絡(luò)互動(dòng)的體驗(yàn),以及在手機(jī)等移動(dòng)端的優(yōu)質(zhì)呈現(xiàn)。網(wǎng)站制作、做網(wǎng)站、移動(dòng)互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運(yùn)營、VI設(shè)計(jì)、云產(chǎn)品.運(yùn)維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價(jià)值服務(wù)。
XAML中是如何處理空格的,MSDN上給出了詳細(xì)的描述:http://msdn.microsoft.com/en-us/library/cc189036%28v=VS.95%29.aspx#whitespace
摘重要的簡(jiǎn)單說一下:
空格、回車、制表符都被當(dāng)做空格。
連續(xù)的空格會(huì)被合并為一個(gè)空格。
如何保留空格
給元素加上屬性 xml:space="preserve"
設(shè)置了這個(gè)屬性之后,會(huì)保留元素中所有的空格,不會(huì)合并連續(xù)空格,也不會(huì)trim兩頭的空格。
這個(gè)方法有個(gè)不便,就是它會(huì)保留元素中所有的空格,哪怕這些空格是由代碼格式規(guī)整化后產(chǎn)生的。這就意味著,你不能用ctrl+E,F這樣的快捷鍵來整理代碼格式了,一旦不小心整理了,改回來都很麻煩。
因?yàn)閄AML支持直接寫Unicode代碼,這串代碼代表一個(gè)non breaking space.
復(fù)雜的文本
帶有復(fù)雜格式的文本,建議使用RichTextBox。
因?yàn)槲谋驹胤譃閎lock和inline兩種,TextBlock僅允許包含inline,所以用來展示少量的文本比較合適。
如果格式比較復(fù)雜,注意用好span,span與run的不同在于,span不會(huì)繼承父元素的格式,相當(dāng)于重置格式,不受父元素格式的影響。
* 換行
在XAML中輸入回車會(huì)被當(dāng)做一個(gè)空格,所有換行要用
另外,兩個(gè)Run相鄰,如果是如下排列:
ab cd
則顯示成:
ab cd
會(huì)自動(dòng)在兩個(gè)Run之間加上換行符。
如果要讓回車去掉,顯示成abcd,則應(yīng)該寫在一行里:
ab cd
* Tab
首先,XAML中沒有tab,只能用連續(xù)的空格來代替。
需要注意,在將一個(gè)string賦值給RichTextBox的Xaml屬性時(shí),會(huì)合并掉連續(xù)的空格,所有如果要保留tab(連續(xù)的空格),需要進(jìn)行這樣一個(gè)workaround:
private const string TAB = " "; private const string TAB_PLACEHOLDER = "===TAB==="; textBox1.Text = richTextBox1.Xaml; string xaml = richTextBox1.Xaml; xaml = xaml.Replace(TAB, TAB_PLACEHOLDER); richTextBox2.Xaml = xaml; foreach (Block block in richTextBox2.Blocks) { foreach (Inline inline in ((Paragraph)block).Inlines) { ((Run)inline).Text = ((Run)inline).Text.Replace(TAB_PLACEHOLDER, TAB); } }
先用一個(gè)占位符來代替四個(gè)空格,這樣在給richTextBox的xaml屬性賦值的時(shí)候就不會(huì)合并空格了。
然后再替換這個(gè)占位符,賦完值替換的時(shí)候不會(huì)進(jìn)行合并。
==================================================
XAML被XML規(guī)則綁定。例如XML對(duì)幾個(gè)特殊字符有特別意義,像&,<,>。如果你嘗試用這些值來設(shè)置一個(gè)元素的內(nèi)容,你可能會(huì)出錯(cuò),因?yàn)閄AML解析器假設(shè)你正在試圖做某些事情,比如創(chuàng)建嵌套元素。你可以使用字符實(shí)體,例如<用<,>用>,&用&,"用" 特殊字符不是你運(yùn)行XAML的一障礙,另外一個(gè)是空格處理。一個(gè)字符串前,后,字符串中的空格,TAB,回車鍵都會(huì)被忽視掉,只保留一個(gè)空格。你可以使用XML:space="preserve",保留任何空格,TAB,回車鍵。注意,這些規(guī)則只對(duì)XAML有用,如果你在代碼中設(shè)置內(nèi)容,任何空格都會(huì)保留。
特殊字符和空格
下面的字符在 [XML]中被定義為 空白(whitespace)字符:
空格 ( )
Tab ( )
回車 (
)
換行 ( )
以上是“XAML中如何處理空格”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!