Files
docs-desktop/dotnet-desktop-guide/xaml-services/escape-sequence-markup-extension.md
T
Andy De George 9371b0126b Migrate .NET 3.1/5 WPF guide from dotnet docs (#48)
* add toc/bread changes

* add xaml-services

* add ported wpf content

* add xaml-services info to docfx

* Fix links 1

* Fix links 2

* Fix links 3

* Fix links 4

* Fix links 5

* Fix links 6

* Fix links 7

* Fix xaml-services link

* Fix snippets 1

* Fix snippets 2

* adjust breadcrumb and toc

* remove preserve-view from breadcrumbs

* add empty view to toc item xaml

* update include

* remove contextual toc for vs article :(
2020-09-17 08:41:01 -07:00

2.8 KiB

title, ms.date, f1_keywords, helpviewer_keywords, ms.assetid
title ms.date f1_keywords helpviewer_keywords ms.assetid
{} Escape Sequence - Markup Extension 03/30/2017
{}
XAML [XAML Services], quotation mark (")
{} escape sequence [XAML Services]
XAML [XAML Services], {} escape sequence
XAML [XAML Services], escape sequence
quotation mark (") [XAML Services]
escape sequence [XAML Services]
3ce3e2ad-a868-43f9-9c98-b29561cb146e

{} Escape sequence / markup extension

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

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

XAML Property Element Usage

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

XAML Values

literalValue The literal string that follows the escape sequence. Typically this string contains an open or close brace ({ or }).

Remarks

The escape sequence ({}) is used so that an open brace ({) can be used as a literal character in 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 (}). Only when the two braces ({}) are adjacent, are they considered an escape sequence.

If the escape sequence is encountered, the XAML reader should process the remainder of the string as a string. 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. 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. 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.

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. This location includes the start of a XAML attribute value, and in a markup extension immediately after an equal sign (=). The following example shows escape sequences for an XML namespace that appears at the start of a XAML attribute value.

[!code-xamlXLINQExample#StackPanelResources]

See also