Freigeben über


{}-Escapesequenz/Markuperweiterung

Stellt die XAML-Escapesequenz für Attributwerte bereit. Durch die Escapesequenz können die nachfolgenden Werte im Attribut als Literal interpretiert werden.

Verwendung von XAML-Attributen

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

Verwendung von XAML-Eigenschaftenelementen

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

XAML-Werte

literalValue

Das Zeichenfolgenliteral, das der Escapesequenz folgt. In der Regel enthält diese Zeichenfolge eine öffnende oder schließende Klammer ({ oder }).

Hinweise

Die Escapesequenz ({}) wird verwendet, damit ein öffnende geschweifte Klammer ({) Literalzeichen in XAML verwendet werden kann.

XAML-Reader verwenden in der Regel die öffnende geschweifte Klammer ({), um den Einstiegspunkt einer Markuperweiterung anzugeben. Sie überprüfen jedoch zuerst das nächste Zeichen, um zu bestimmen, ob es eine schließende geschweifte Klammer (}) ist. Nur wenn die beiden geschweiften Klammern ({}) aufeinander folgen, werden sie als Escapesequenz betrachtet.

Wenn die Escape-Sequenz gefunden wird, sollte der XAML-Reader die restliche Zeichenfolge als Zeichenfolge verarbeiten. Wenn jedoch die Escapesequenz für einen Member übernommen wird, der über einen Typkonverter verfügt, ist es möglich, dass die Zeichenfolge die Typkonvertierung durchläuft, wenn sie von einem XAML-Writer interpretiert wird.

Die Escapesequenz ist keine Markuperweiterung und wird nicht von einer Klasse unterstützt. Dies ist jedoch eine Konvention, die XAML-Reader (einschließlich benutzerdefinierter XAML-Reader) beachten müssen.

Ein Anführungszeichen (") kann nicht als Escapesequenz auf diese Weise verwendet werden. Wenn Sie ein Anführungszeichen als Eigenschaftswert für eine Nicht-Inhaltseigenschaft festlegen müssen, verwenden Sie die Syntax des Eigenschaftenelements und platzieren das Anführungszeichen als Zeichenfolge innerhalb des Eigenschaftenelements oder verwenden eine XML-Zeichenentität. Bei einer Inhaltseigenschaft kann das Anführungszeichen der ganze Inhalt sein.

Die Escapesequenz ({}) ist oft erforderlich, wenn Sie an einer Position, an der XAML-Markuperweiterungen auftreten können, einen XML-Typ angeben, der einen Namespacequalifizierer beinhalten muss. Dies umfasst auch den Anfang eines XAML-Attributwerts und wird in einer Markuperweiterung sofort nach einem Gleichheitszeichen (=) eingefügt. Das folgende Beispiel zeigt Escapesequenzen für einen XML-Namespace am Anfang eines XAML-Attributwerts.

<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

Referenz

XML-Zeichenentitäten und XAML

Weitere Ressourcen

Typkonverter und Markuperweiterungen für XAML