{} Escape-последовательность/расширение разметки
Обновлен: Ноябрь 2007
Предоставляет escape-последовательности XAML для значений атрибутов, позволяя последующим значениям в атрибуте интерпретироваться в качестве литералов.
Использование атрибута XAML
<object property="{}literalValue" .../>
Использование элемента свойства XAML
<object>
<object.property>
{}literalValue
</object.property>
</object>
Значения XAML
literalValue |
На выходе получается символьная строка. |
Заметки
Escape-последовательность {} используется для переключения символов "{" и "}", используемых для расширений разметки в синтаксисе атрибута. Строго говоря, сама escape-последовательность не является расширением разметки и не поддерживается классом. Все остальные расширения разметки XAML используют символы "{" и "}" как распознанные реализациями процессора XAML для выходящей обработки значений атрибутов, отличных от литералов или ссылок-обработчиков. Только особый случай двух фигурных скобок, расположенных рядом, будет рассматриваться как escape-последовательность. Дополнительные сведения см. в разделе Расширения разметки и XAML.
Эта escape-последовательность полезна, если литерал "{" необходимо использовать в качестве первого символа значения.
Обратите внимание, что знак кавычек ('') не может быть выведен таким образом. Если необходимо задать знак кавычек в качестве значения для свойства, не являющегося содержимым, используйте синтаксис элемента свойства и поместите знак кавычки в виде строки внутри элемента свойства или используйте сущность символов XML. Для свойства содержимого знак кавычек может быть всем содержимым.
Escape-последовательность {} часто требуется при указании типа XML, который должен включать квалификатор пространства имен в том месте, где должно отображаться расширение разметки XAML. Она включает начало значения атрибута XAML и внутри расширения разметки следует сразу после знака равенства. В следующем примере показаны escape-последовательности для пространства имен XML, которые отображаются в начале значения атрибута XAML.
<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>