WPF 特殊符号 字符绑定

时间:2021-11-14 20:22:06
  <Border xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:sys="clr-namespace:System;assembly=mscorlib">
        <Border.Resources>
            <sys:String x:Key="testStr"  xml:space="preserve">asdf     adf</sys:String>
        </Border.Resources>
        <TextBlock Text="{StaticResource testStr}"></TextBlock>
    </Border>

添加xml:space="preserve"后,形如空格、换行才会起作用。

换行符:&#x0a;或者&#13;

相关知识

在XML的规范中,定义了两个内置的属性,即xml:space和xml:lang。在每个XML实例文档中,前缀名“xml”都已经被隐式地绑定到了一个名称空间上,内置属性名称以xml:作为前缀,自定义的属性名不能以xml:作为前缀,否则在解析时将发生错误。

    由于空格等字符在XML文件中是有意义的,XML解析程序会将它们一个个如实地交给下游程序去处理,xml:space属性则是用于设置下游应用程序应该如何处理解析器传递的空格等字符。xml:space是一个Enumerated类型的属性,它的设置值只能是“default”或“preserve”:“default”表示应用程序可以自行随意处理空格等字符;“preserve”则表示应用程序应把空格等字符当做普通文本字符处理。

 xml:lang属性用于设置元素的本地化语言信息,ISO-639规范中规定了代表各个国家和地区的本地化语言的名称,例如"en"表示英文、"la"表示拉丁文、"zh"表示中文、"zh-CN"表示中文(中国)、"zh-TW"表示中文(中国*地区)。xml:lang属性的默认值为"en"。不同的国家地区不仅使用的文字互不相同,而且人们使用货币、时间、数字等的表现格式也不相同,例如,在美国要表示一个日期类型的属性,用;而中国则用。如果按照美国的来解析中国的就出错了,所以中国的应该写为:。

    如果在某个元素中设置了xml:space和xml:lang属性,那么,嵌套在该元素中的其它元素都将沿用其设置结果。