次の方法で共有


{} エスケープ シーケンス/マークアップ拡張

属性値の XAML エスケープ シーケンスを提供します。 エスケープ シーケンスを使用すると、属性内の後続の値をリテラルとして解釈できます。

XAML 属性の使用法

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

XAML プロパティ要素の使用法

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

XAML 値

価値 形容
literalValue の エスケープ シーケンスに続くリテラル文字列。 通常、この文字列には、中かっこ ({ または }) が含まれます。

備考

エスケープ シーケンス ({}) は、XAML でオープン 中かっこ ({) をリテラル文字として使用できるように使用されます。

XAML リーダーは通常、マークアップ拡張のエントリ ポイントを示すために、中かっこ ({) を使用します。ただし、最初に次の文字をチェックして、それが右中かっこ (}) であるかどうかを判断します。 2 つの中かっこ ({}) が隣接している場合にのみ、それらはエスケープ シーケンスと見なされます。

エスケープ シーケンスが発生した場合、XAML リーダーは文字列の残りの部分を文字列として処理する必要があります。 ただし、エスケープ シーケンスが型コンバーターを持つメンバーに適用されている場合、文字列は XAML ライターによって解釈されるときに型変換を受ける可能性があります。

エスケープ シーケンスはマークアップ拡張ではなく、クラスによってサポートされていません。 ただし、XAML リーダー (カスタム XAML リーダーを含む) が尊重すべき規則です。

この方法では、引用符 (") をエスケープ シーケンスとして使用することはできません。 非変換プロパティのプロパティ値として引用符を設定する必要がある場合は、プロパティ要素の構文を使用し、引用符をプロパティ要素内の文字列として配置するか、XML 文字エンティティを使用します。 コンテンツ プロパティの場合、引用符はコンテンツ全体にすることができます。

エスケープ シーケンス ({}) は、XAML マークアップ拡張が表示される可能性がある場所に名前空間修飾子を含める必要がある XML 型を指定する場合に頻繁に必要になります。 この場所には、XAML 属性値の先頭と、等号 (=) の直後のマークアップ拡張機能が含まれます。 次の例は、XAML 属性値の先頭に表示される XML 名前空間のエスケープ シーケンスを示しています。

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

関連項目