XAML中的特殊字符以及空白的处理

来源:互联网 发布:四大名助网络更新时间 编辑:程序博客网 时间:2024/06/06 00:38

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>
这样,就确保了开始符号<和结束符号>之间没有其他空白字符。