Freigeben über


{}-Escapesequenz/Markuperweiterung

Stellt die XAML-Escapesequenz für Attributwerte bereit. Die Escapesequenz ermöglicht es, die nachfolgenden Werte im Attribut als Literal zu interpretieren.

Verwendung von XAML-Attributen

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

Verwendung von XAML-Eigenschaftenelementen

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

XAML-Werte

Wert Beschreibung
literalValue Die Literalzeichenfolge, die der Escapesequenz folgt. In der Regel enthält diese Zeichenfolge eine offene oder schließende Klammer ({ oder }).

Hinweise

Die Escape-Sequenz ({}) wird verwendet, damit eine offene Klammer ({) als literales Zeichen in XAML verwendet werden kann.

XAML-Leser verwenden in der Regel die öffnende geschweifte Klammer ({), um den Einstiegspunkt einer Markup-Erweiterung zu kennzeichnen; sie überprüfen jedoch zunächst das nächste Zeichen, um festzustellen, ob es sich um eine schließende Klammer (}) handelt. Nur wenn die beiden Klammern ({}) nebeneinander liegen, gelten sie als Escapesequenz.

Wenn die Escapesequenz aufgetreten ist, sollte der XAML-Reader den Rest der Zeichenfolge als Zeichenfolge verarbeiten. Wenn die Escapesequenz jedoch auf ein Element angewendet wird, das über einen Typkonverter verfügt, kann die Zeichenfolge eine Typkonvertierung durchlaufen, wenn sie von einem XAML-Writer interpretiert wird.

Die Escapesequenz ist keine Markuperweiterung und wird von einer Klasse nicht unterstützt. Es ist jedoch eine Konvention, die XAML-Leser (einschließlich benutzerdefinierter XAML-Leser) berücksichtigen sollte.

Ein Anführungszeichen (") kann nicht auf diese Weise als Escapesequenz verwendet werden. Wenn Sie ein Anführungszeichen als Eigenschaftswert für eine nichtcontent-Eigenschaft festlegen müssen, verwenden Sie die Eigenschaftselementsyntax, und platzieren Sie das Anführungszeichen als Zeichenfolge innerhalb des Eigenschaftselements oder verwenden Sie eine XML-Zeichenentität. Für eine Inhaltseigenschaft kann das Anführungszeichen den gesamten Inhalt sein.

Die Escapesequenz ({}) ist häufig erforderlich, wenn Sie einen XML-Typ angeben, der einen Namespacequalifizierer an einem Speicherort enthalten muss, an dem eine XAML-Markuperweiterung möglicherweise angezeigt wird. Dieser Speicherort enthält den Start eines XAML-Attributwerts und in einer Markuperweiterung unmittelbar nach einem Gleichheitszeichen (=). Im folgenden Beispiel werden Escapesequenzen für einen XML-Namespace angezeigt, der am Anfang eines XAML-Attributwerts angezeigt wird.

<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>

Weitere Informationen