Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Saiba mais sobre as regras de processamento de espaço em branco, conforme usado pelo XAML.
Processamento de espaço em branco
Consistente com XML, os caracteres de espaço em branco em XAML são espaço, alimentação de linha e guia. Eles correspondem aos valores Unicode 0020, 000A e 0009, respectivamente. Por padrão, essa normalização do espaço em branco ocorre quando um processador XAML encontra qualquer texto interno encontrado entre elementos em um arquivo XAML:
- 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 linha, guia) são convertidos em espaços.
- Todos os espaços consecutivos são excluídos e substituídos por um espaço.
- Um espaço imediatamente após a marca inicial é excluído.
- 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. Esse subconjunto também é às vezes chamado de ideógrafos CJK. Para obter mais informações, consulte http://www.unicode.org.
"Padrão" corresponde ao estado indicado pelo valor padrão do atributo xml:space .
Espaço em branco em texto interno e primitivos de cadeia de caracteres
As regras de normalização acima se aplicam ao texto interno em 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 de objeto , 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 intervindo), o texto interno será analisado como uma única cadeia de caracteres. 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 cadeia de caracteres. Se houver marcas de elemento interveniente, isso resultará em um erro de analisador XAML, pois 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 subcadeia de caracteres será convertida em uma cadeia de caracteres e adicionada como um item de coleção, o elemento intervenitório será adicionado como um item de coleção e, por fim, a subcadeia de caracteres à direita (se houver) será adicionada à coleção como um terceiro item string .
Modelos de conteúdo de texto e espaço em branco
Na prática, a preservação do espaço em branco é preocupante apenas para um subconjunto de todos os modelos de conteúdo possíveis. Esse subconjunto é composto por modelos de conteúdo que podem usar um tipo de cadeia de caracteres singleton em algum formato, uma coleção de cadeias de caracteres dedicada ou uma mistura de String e outros tipos em listas, coleções ou dicionários.
Mesmo para modelos de conteúdo que podem levar cadeias de caracteres, o comportamento padrão nesses modelos de conteúdo é que qualquer espaço em branco restante 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 esse atributo no nível do elemento em que o espaço em branco precisa ser preservado. Observe que isso preserva todos os espaços em branco, incluindo os que podem ser adicionados por editores de código ou superfícies de design para alinhar elementos de markup num aninhamento intuitivamente visual. Se esses espaços vão ser renderizados é novamente uma questão do modelo de conteúdo para o elemento que os contém. Não recomendamos que você especifique xml:space="preserve" no nível raiz, pois 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 o espaço em branco dentro de cadeias de caracteres ou são coleções significativas de espaço em branco.
Entidades e espaços sem quebra: o XAML dá suporte à colocação de qualquer entidade Unicode em 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 dão suporte a caracteres de espaço sem quebra. Tenha cuidado se você estiver usando entidades para simular características de layout, como recuos, já que o resultado em tempo de execução das entidades varia com base em um número maior de fatores do que os recursos gerais de layout, como o uso adequado de painéis e margens.
Windows developer