{} 转义序列/标记扩展

提供属性值的 XAML 转义序列。 转义序列允许将属性中的后续值解释为文本。

XAML 属性用法

<object property="{} literalValue" .../>

XAML 属性元素用法

<object>
  <object.property>
    {} literalValue
  </object.property>
</object>

XAML 值

说明
literalValue 转义序列后面的文本字符串。 通常,此字符串包含一个左大括号或右大括号({ 或 })。

备注

使用转义序列 ({}) 的目的是可以在 XAML 中将左大括号 ({) 用作文本字符。

XAML 读取器通常使用左大括号 ({) 来表示标记扩展的入口点;但它会先检查下一个字符是否是右大括号 (})。 只有当两个大括号 ({}) 相邻时,才会将它们视为转义序列。

如果遇到转义序列,XAML 读取器应将字符串的其余部分作为一个字符串来处理。 但是,如果将转义序列应用于具有类型转换器的成员,则字符串被 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>

另请参阅