1. 程式人生 > >XAML中的特殊字元以及空白的處理

XAML中的特殊字元以及空白的處理

XAML受限於XML的規則,例如,XML特別關注一些特殊字元,如&,<以及>。如果試圖使用這些字元設定一個元素的內容,將會遇到很多麻煩,因為XAML解析器認為正在做其他的事情,比如建立一個巢狀元素。

例如,要建立一個包含有<You & Me>文字的按鈕,按照正常的方法是不能完成的:

<Button ...>
    <You & Me>
</Button>
上述的標記是不能建立一個想要的Button的,因為使用了會違反XAML規則的字元。以下是可能會用到的字元實體,如果要使用特殊符號,必須通過引用字元實體,因為引號用於指示一個特性值的開始和結束。
特殊字元實體
特殊字元
字元實體
小於號(<)
&lt;
大於號(>)
&gt;
&符號(&)
&amp;
引號(“)
&quot;

現在,要想實現上述Button,可以如下標記:

<Button ...>

&lt; You &amp; Me&gt;

</Button>

如此則可以正確的標識所要的Button。

另,XAML預設的是壓縮所有的空白字元,如空格,Tab鍵,硬回車等,將其壓縮為一個標準的空格長度的空白字元,但如果需要在現實的文字中顯示所要的空白,必須對元素的屬性做一宣告,即將使用元素標記為:xml:space="preserve",如下

<TextBox Name = "txtTest" xml:sapce="preserve" ...>
    [There is some       space "    "]
</TextBox>
這樣,在實際顯示的時候,文字框除了顯示空格,Tab以外,還會顯示一個硬回車,因為預設的是處理所有的空白。
如果不想讓其顯示硬回車,就必須使用一個不是太好看的標記方式以去掉硬回車,如下:
<TextBox Name = "txtTest" xml:sapce="preserve" ...>
    [There is some       space "    "]</TextBox>
這樣,就確保了開始符號<和結束符號>之間沒有其他空白字元。