Udostępnij za pośrednictwem


{} Sekwencja ucieczki/rozszerzenie znaczników

Udostępnia sekwencję ucieczki XAML dla wartości atrybutów. Sekwencja ucieczki umożliwia interpretowanie kolejnych wartości w atrybucie jako literału.

Użycie atrybutu języka XAML

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

Użycie elementu właściwości języka XAML

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

Wartości XAML

Wartość Opis
literalValue Ciąg literału, który jest zgodny z sekwencją ucieczki. Zazwyczaj ten ciąg zawiera otwarty lub zamykany nawias klamrowy ({ lub }).

Uwagi

Sekwencja ucieczki ({}) jest używana tak, aby otwarty nawias klamrowy ({) mógł być używany jako znak literału w języku XAML.

Czytelnicy języka XAML zazwyczaj używają otwartego nawiasu klamrowego ({) do oznaczania punktu wejścia rozszerzenia znaczników. Jednak najpierw sprawdzają następny znak, aby określić, czy jest to nawias klamrowy zamykający (}). Tylko wtedy, gdy dwa nawiasy klamrowe ({}) sąsiadują, są uważane za sekwencję ucieczki.

W przypadku napotkania sekwencji ucieczki czytnik XAML powinien przetworzyć pozostałą część ciągu jako ciąg. Jeśli jednak sekwencja ucieczki jest stosowana do elementu członkowskiego, który ma konwerter typów, ciąg może przejść konwersję typu, gdy jest interpretowany przez składnik zapisywania XAML.

Sekwencja ucieczki nie jest rozszerzeniem znaczników i nie jest wspierana przez klasę. Jednak jest to konwencja, którą czytelnicy XAML (w tym niestandardowe czytniki XAML) powinni przestrzegać.

W ten sposób nie można użyć cudzysłowu (") jako sekwencji ucieczki. Jeśli musisz ustawić cudzysłów jako wartość właściwości innej niż wartość, użyj składni elementu właściwości i umieść cudzysłów jako ciąg wewnątrz elementu właściwości lub użyj jednostki znaku XML. W przypadku właściwości zawartości cudzysłów może być całą zawartością.

Sekwencja ucieczki ({}) jest często wymagana podczas określania typu XML, który musi zawierać kwalifikator przestrzeni nazw w lokalizacji, w której może pojawić się rozszerzenie znaczników XAML. Ta lokalizacja zawiera początek wartości atrybutu XAML i w rozszerzeniu znaczników bezpośrednio po znaku równości (=). W poniższym przykładzie przedstawiono sekwencje ucieczki dla przestrzeni nazw XML, która pojawia się na początku wartości atrybutu 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>

Zobacz też