Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Saiba mais sobre as regras de processamento de espaço em branco usadas pelo XAML.
Processamento de espaços em branco
Consistente com XML, os caracteres de espaço em branco em XAML são espaço, alimentação de linha e tabulação. Estes correspondem aos valores Unicode 0020, 000A e 0009, respectivamente. Por padrão, essa normalização de espaço em branco ocorre quando um processador XAML encontra qualquer texto interno encontrado entre elementos em um arquivo XAML:
- Os caracteres de alimentação de linha entre caracteres do Leste Asiático são removidos.
- Todos os caracteres de espaço em branco (espaço, alimentação de linhas, tabulação) são convertidos em espaços.
- Todos os espaços consecutivos são eliminados e substituídos por um espaço.
- Um espaço imediatamente após a tag de início é apagado.
- Um espaço imediatamente antes da tag final é excluído.
- Os caracteres do Leste Asiático são definidos como um conjunto de intervalos de caracteres Unicode U+20000 a U+2FFFD e U+30000 a U+3FFFD. Este subconjunto também é por vezes referido como ideógrafos CJK. Para obter mais informações, consulte http://www.unicode.org.
"Default" corresponde ao estado indicado pelo valor padrão do atributo xml:space .
Espaço em branco no texto interno e primitivas de cadeia de caracteres
As regras de normalização acima se aplicam ao texto interno dentro de elementos XAML. Após a normalização, um processador XAML converte qualquer texto interno em um tipo apropriado como este:
- Se o tipo da propriedade não for uma coleção, mas não for diretamente um tipo Object , o processador XAML tentará converter para esse tipo usando seu conversor de tipo. Uma conversão com falha aqui resulta em um erro de análise XAML.
- Se o tipo da propriedade for uma coleção e o texto interno for contíguo (sem marcas de elemento intervenientes), o texto interno será analisado como uma única String. Se o tipo de coleção não puder aceitar String, isso também resultará em um erro de analisador XAML.
- Se o tipo da propriedade for Object, o texto interno será analisado como uma única String. Se houver marcas de elemento intervenientes, isso resultará em um erro de analisador XAML, porque o tipo Object implica um único objeto (String ou de outra forma).
- Se o tipo da propriedade for uma coleção e o texto interno não for contíguo, a primeira substring será convertida em String e adicionada como um item de coleção, o elemento interveniente será adicionado como um item de coleção e, finalmente, a substring à direita (se houver) será adicionada à coleção como um terceiro item String .
Modelos de espaço em branco e conteúdo de texto
Na prática, preservar o espaço em branco é motivo de preocupação apenas para um subconjunto de todos os modelos de conteúdo possíveis. Esse subconjunto é composto por modelos de conteúdo que podem assumir um tipo String singleton de uma forma ou de outra, uma coleção String dedicada ou uma mistura de String e outros tipos em listas, coleções ou dicionários.
Mesmo para modelos de conteúdo que podem usar cadeias de caracteres, o comportamento padrão nesses modelos de conteúdo é que qualquer espaço em branco remanescente não é tratado como significativo.
Preservando o espaço em branco
Várias técnicas para preservar o espaço em branco no XAML de origem para uma eventual apresentação não são afetadas pela normalização do espaço em branco do processador XAML.
xml:space="preserve": Especifique este atributo no nível do elemento onde o espaço em branco precisa ser preservado. Observe que isso preserva todos os espaços em branco, incluindo aqueles que podem ser adicionados por editores de código ou superfícies de design para alinhar elementos de marcação como uma estrutura de aninhamento visualmente intuitiva. Se esses espaços são renderizados é novamente uma questão do modelo de conteúdo para o elemento que contém. Não recomendamos que você especifique xml:space="preserve" no nível raiz, porque a maioria dos modelos de objeto não considera o espaço em branco como significativo de uma forma ou de outra. É uma prática melhor definir apenas o atributo especificamente no nível de elementos que renderizam espaço em branco dentro de cadeias de caracteres ou são coleções significativas de espaço em branco.
Entidades e espaços ininterruptos: o XAML suporta a colocação de qualquer entidade Unicode dentro de um modelo de objeto de texto. Você pode usar entidades dedicadas, como espaço sem quebra (na codificação UTF-8). Você também pode usar controles de rich text que suportam caracteres de espaço ininterruptos. Tenha cuidado se estiver a utilizar entidades para simular características de layout, como recuos, porque o resultado em tempo de execução das entidades varia com base em um número maior de fatores do que as funcionalidades gerais de layout, como a utilização adequada de painéis e margens.
Windows developer