{} 转义序列/标记扩展

提供属性值的 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>

另请参阅