{} 转义序列/标记扩展
更新:2007 年 11 月
为属性值提供 XAML 转义序列,允许将属性中的后续值解释为文字。
XAML 属性用法
<object property="{}literalValue" .../>
XAML 属性元素用法
<object>
<object.property>
{}literalValue
</object.property>
</object>
XAML 值
literalValue |
转义的文字字符串。 |
备注
{} 转义序列用来对属性语法中用于标记扩展的 { 和 } 进行转义。严格来说,转义序列本身并不是标记扩展,并且不受类的支持。XAML 中的所有其他标记扩展都使用可由 XAML 处理器实现识别的 { 和 } 字符将对属性值的处理转义为非文字或处理程序引用。只有在两个花括号相邻的特殊情况下才视为转义序列。有关更多信息,请参见标记扩展和 XAML。
当您希望将文字字符 { 设置为某个值的第一个字符时,此转义序列将很有用。
请注意,引号字符 (") 不能通过这种方式进行转义。如果需要将引号字符设置为非内容属性的属性值,请使用属性元素语法,并将引号作为一个字符串放在属性元素内,或者使用 XML 字符实体。对于内容属性,引号可以是全部内容。
在可能会出现 XAML 标记扩展的位置指定必须包含命名空间限定符的 XML 类型时,经常需要使用 {} 转义序列。这种位置包括 XAML 属性值的开头、标记扩展内部以及紧跟着等号的位置。下面的示例显示了出现在 XAML 属性值开头的 XML 命名空间的转义。
<StackPanel Name="stacky">
<StackPanel.Resources>
<DataTemplate DataType="{}{http://planetsNS}Planet" >
<StackPanel Orientation="Horizontal">
<TextBlock Width="100" Text="{Binding Path=Element[{http://planetsNS}DiameterKM].Value}" />
<TextBlock Width="100" Text="{Binding Path=Attribute[Name].Value}" />
<TextBlock Text="{Binding Path=Element[{http://planetsNS}Details].Value}" />
</StackPanel>
</DataTemplate>
</StackPanel.Resources>