{} エスケープ シーケンス/マークアップ拡張機能{} Escape Sequence / Markup Extension

属性値の XAML エスケープシーケンスを提供します。Provides the XAML escape sequence for attribute values. エスケープシーケンスを使用すると、属性の後続の値をリテラルとして解釈できます。The escape sequence allows the subsequent values in the attribute to be interpreted as a literal.

XAML 属性の使用方法XAML Attribute Usage

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

XAML プロパティ要素の使用XAML Property Element Usage

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

XAML 値XAML Values

literalValueliteralValue エスケープシーケンスの後に続くリテラル文字列。The literal string that follows the escape sequence. 通常、この文字列には、左中かっこ ({または}) が含まれています。Typically this string contains an open or close brace ({ or }).

RemarksRemarks

左中かっこ ({{}) を XAML のリテラル文字として使用できるように、エスケープシーケンス () が使用されます。The escape sequence ({}) is used so that an open brace ({)can be used as a literal character in XAML.

XAML リーダーは、通常、左中かっこ ({) を使用してマークアップ拡張機能のエントリポイントを表しますが、最初に次の文字をチェックして、右中かっこ (}) であるかどうかを確認します。XAML readers typically use the open brace ({) to denote the entry point of a markup extension; however, they first check the next character to determine whether it is a closing brace (}). 2つの中かっこ ({}) が隣接している場合にのみ、エスケープシーケンスと見なされます。Only when the two braces ({}) are adjacent, are they considered an escape sequence.

エスケープシーケンスが検出された場合、XAML リーダーは文字列の残りの部分を文字列として処理する必要があります。If the escape sequence is encountered, the XAML reader should process the remainder of the string as a string. ただし、エスケープシーケンスが型コンバーターを持つメンバーに適用されている場合、その文字列は XAML ライターによって解釈されるときに型変換が行われる可能性があります。However, if the escape sequence is applied to a member that has a type converter, the string might undergo type conversion when it is interpreted by a XAML writer.

エスケープシーケンスはマークアップ拡張機能ではなく、クラスによってサポートされていません。The escape sequence is not a markup extension and is not backed by a class. ただし、XAML リーダー (カスタム XAML リーダーを含む) は考慮する必要があります。However, it is a convention that XAML readers (including custom XAML readers) should respect.

この方法では、引用符 (") をエスケープシーケンスとして使用することはできません。A quotation mark (") cannot be used as an escape sequence in this manner. コンテンツ以外のプロパティのプロパティ値として引用符を設定する必要がある場合は、プロパティ要素構文を使用し、プロパティ要素内に引用符を文字列として配置するか、XML 文字エンティティを使用します。If you need to set a quotation mark as a property value for a noncontent property, use property element syntax and place the quotation mark as a string inside the property element, or use an XML character entity. コンテンツプロパティの場合、引用符はコンテンツ全体にすることができます。For a content property, the quotation mark can be the entire content.

XAML マークアップ拡張{}機能が表示される場所に名前空間修飾子を含める必要がある XML 型を指定するときには、多くの場合、エスケープシーケンス () が必要です。The escape sequence ({}) is frequently required when specifying an XML type that must include a namespace qualifier in a location where a XAML markup extension might appear. これには、XAML 属性値の開始、およびマークアップ拡張機能 (等号 (=) の直後) が含まれます。This includes the start of a XAML attribute value, and in a markup extension, immediately after an equal sign (=). 次の例は、XAML 属性値の開始時に表示される XML 名前空間のエスケープシーケンスを示しています。The following example shows escape sequences for an XML namespace that appears at the start of a XAML attribute value.

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

関連項目See also