Поделиться через


Escape-последовательность/расширение разметки {}

Предоставляет escape-последовательность XAML для значений атрибутов. escape-последовательность XAML позволяя последующим значениям в атрибуте интерпретироваться в качестве литералов.

Использование атрибута XAML

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

Использование элемента свойства XAML

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

Значения XAML

literalValue

Символьная строка, которая следует за escape-последовательность. Как правило, эта строка содержит открывающую или закрывающую скобку ({ или }).

Заметки

Escape-последовательность ({}) используется таким образом, чтобы открывающая фигурная скобка ({) можно было использовать в качестве знака литерала в XAML.

Средства чтения XAML обычно используют открывающие фигурные скобки ({) для обозначения точки входа расширения разметки. Однако они сначала проверяют следующий символ, чтобы определить, является ли это закрывающей фигурной скобкой (}). Только тогда, когда две фигурные скобки ({}) являются смежными, они считаются escape-последовательностью.

При обнаружении escape-последовательности средство чтения XAML должно обработать остаток строки как строку. Однако если escape-последовательность применяется к члену, имеющему преобразователь типов, возможно, при интерпретации строки средством записи XAML будет выполнено преобразование типа.

escape-последовательность не является расширением разметки и не поддерживается классом. Однако это соглашение должны учитывать средства чтения XAML (в том числе пользовательские средства чтения 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>

См. также

Ссылки

Сущности знаков XML и XAML

Другие ресурсы

Преобразователи типов или расширения разметки для XAML