Freigeben über


{} Escapesequenz/Markuperweiterung

Stellt die XAML-Escapesequenz für Attributwerte bereit. Die Escapesequenz ermöglicht es den nachfolgenden Werten im Attribut, als Literal interpretiert zu werden.

XAML-Attributverwendung

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

XAML-Eigenschaftselementverwendung

<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 geöffnete oder schließende geschweifte Klammer ({ oder }).

Bemerkungen

Die Escapesequenz ({}) wird verwendet, sodass eine geöffnete geschweifte Klammer ({) als Literalzeichen in XAML verwendet werden kann.

XAML-Leser verwenden in der Regel die geöffnete geschweifte Klammer ({), um den Einstiegspunkt einer Markuperweiterung zu kennzeichnen. Sie überprüfen jedoch zuerst das nächste Zeichen, um festzustellen, ob es sich um eine schließende geschweifte Klammer (}) handelt. Nur wenn die beiden geschweiften Klammern ({}) nebeneinander liegen, werden sie als Escapesequenz betrachtet.

Wenn die Escapesequenz gefunden wird, 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, wird die Zeichenfolge möglicherweise typkonvertiert, wenn sie von einem XAML-Writer interpretiert wird.

Die Escapesequenz ist keine Markuperweiterung und wird nicht von einer Klasse unterstützt. Es handelt sich jedoch um eine Konvention, die XAML-Leser (einschließlich benutzerdefinierter XAML-Reader) beachten sollten.

Ein Anführungszeichen (") kann auf diese Weise nicht als Escapesequenz verwendet werden. Wenn Sie ein Anführungszeichen als Eigenschaftswert für eine Nichtinhaltseigenschaft festlegen müssen, verwenden Sie eigenschaftselementsyntax, und platzieren Sie das Anführungszeichen als Zeichenfolge innerhalb des Eigenschaftselements, oder verwenden Sie eine XML-Zeichenentität. Bei einer Inhaltseigenschaft kann das Anführungszeichen der gesamte 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 angezeigt werden kann. Dieser Speicherort enthält den Anfang eines XAML-Attributwerts und in einer Markuperweiterung unmittelbar nach einem Gleichheitszeichen (=). Das folgende Beispiel zeigt Escapesequenzen für einen XML-Namespace, 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>

Siehe auch