{} 转义序列/标记扩展

更新: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>

请参见

概念

XAML 概述

标记扩展和 XAML

参考

XML 字符实体和 XAML