代码改变世界

XAML 中使用空格键(空白字符)

2013-09-07 18:27 Andrew.Wangxu 阅读(...) 评论(...) 编辑 收藏

    默认情况下,XAML折叠所有空白,这意味着包含空格、tab 键以及回车的长字符串将被转换为单个空格。而且,如果在一个元素内容之前或之后添加空白,这个空格将被完全忽略。

    有时这并不是所期望的结果。例如,可能希望在按钮文本中包含一系列空格。在这种情况下,需要为元素使用 xml:space="preserve" 特性。

    xml:space 特性是 XML 标准的一部分,并且是一个要么包含全部,要么什么都不包括的设置。一旦使用了设置,元素内的所有空白字符将被保留。如下标记:

<TextBox Name=""txtQuestion" xml:space="preserve" ...>
    [这是一段文本       很多个空格     来自 Andrew Blog]
</TextBox>

    在这个示例中,文本框的文本在实际文本之前将包含硬回车、tab 字符等。在显示的文本中也包含一系列空格之后还跟有一个硬回车字符。

    如果只是想保留内部空格,则需要使不是很便于阅读的标记:

<TextBox Name=""txtQuestion" xml:space="preserve" ...
>[这是一段文本       很多个空格     来自 Andrew Blog]</TextBox>

    上面的这个技巧是为了确保在开始符号>和具体内容之间,以及具体内容和结束符号<之间没有空白。

    当然,这个问题只存在于 XAML 标记中。如果通过代码设置文本框中的文本,所有空格都将被使用。

参考:http://www.wxzzz.com/?id=126