Compartilhar via


Extensão de Marcação x:Static

Referencia qualquer entidade de código estático por-valor definida de uma maneira compatível com CLS (Common Language Specification) (CLS). A propriedade referenciada é avaliada antes de carregar o restante da página XAML e pode ser usada para fornecer o valor de uma propriedade no XAML.

Uso de atributos XAML

<object property="{x:Static prefix:typeName.staticMemberName}" .../>

Uso do elemento Object em XAML

<object>
  <object.property>
    <x:Static Member="prefix:typeName.staticMemberName" .../>
  </object.property>
</object>

Valores de XAML

prefix

Opcional. Um prefixo que mapeia um namespace xmlns não padrão. Consulte Comentários.

typeName

Obrigatório. O tipo que define o membro estático desejado.

staticMemberName

Obrigatório. O nome do membro desejado de valor estático (uma constante, um propriedade estática, um campo ou um valor de enumeração).

Comentários

A entidade de código referenciada deve ser um dos seguintes:

  • constante

  • propriedade estática

  • campo

  • valor de enumeração

Especificar qualquer outra entidade de código, como uma propriedade não estática, resulta em um erro em tempo de compilação.

Referências x:Static podem ser feitas a campos estáticos ou propriedades que não estão dentro do namespace xmlns padrão, mas isso requer um prefixo de mapeamento. Você define o namespace xmlns padrão para qualquer elemento XAML dado como um atributo. Geralmente, isso é definido no elemento raiz para que o xmlns se aplique a todos os elementos abaixo da raiz. Geralmente, o namespace de XML padrão que você usa para Windows Presentation Foundation (WPF) programação é a WPF espaço para nome. Você deve mapear um prefixo se uma das seguintes for verdadeira:

  • Você está fazendo referência a um tipo que existe no Microsoft .NET Framework mas não faz parte dos WPF espaço para nome. Esse é um cenário bastante comum para usar x:Static. Por exemplo, você pode usar um x:Static referência com um mapeamento de prefixo para o System Namespace CLR para fazer referência a estático propriedades da Environment classe.

  • Você estiver fazendo referência a um tipo de um conjunto personalizado de módulos.

  • Você está fazendo referência a um tipo existente em um WPF assembly, mas que tipo é dentro de um namespace CLR não mapeada para fazer parte do WPF espaço para nome. O mapeamento é executado pelo definições no assembly. Namespaces CLR não mapeados são típicos para WPF definições de classe no CLR namespaces que não são geralmente destinados XAML, sistema autônomo System.Windows.Threading.

Para obter mais informações sobre prefixos e namespaces XML, consulte Espaços de nomes XAML e mapeamentos de espaços de nomes.

Você pode usar referências x:Static que são não diretamente o tipo de valor de uma propriedade, mas podem ser avaliadas para esse tipo. Por exemplo, você pode usar um x:Static referência para obter um valor de uma enumeração ou fora de uma propriedade estática, sistema autônomo sistema autônomo diversas cores e pincéis definidos pelo SystemColors. x:Static referências potencialmente podem ser usadas para conjunto qualquer propriedade na XAML sintaxe, mesmo aqueles que realmente pode se basear em uma propriedade com um tipo de referência, pois a manipulação de real a x:Static valor avaliado de uma vez pode variar, dependendo do tipo de conversor comportamentos da propriedade onde o valor estático será aplicado.

Sintaxe de atributo é a sintaxe mais comum usada com esta extensão de marcação. O símbolo-string fornecido após a string identificadora do x:Static é atribuído como o valor do Member da classe de extensão StaticExtension subjacente.

x:Static pode ser usada na sintaxe de elemento de objeto. Nesse caso, é necessário especificar o valor da propriedade Member.

x:Static também pode ser usado em um atributo detalhado que especifica a propriedade Member como sendo o par propriedade=valor:

<object property="{x:Static Member=prefix:typeName.staticMemberName}" .../>

O uso detalhado geralmente é útil para as extensões que têm mais de uma propriedade configurável, ou se algumas propriedades são opcionais. Como x:Static tem apenas uma propriedade configurável, que é necessária, esse uso detalhado não é típico.

Na implementação de processador XAML WPF, o tratamento para esta extensão de marcação é definida pela classe StaticExtension.

x:Static é uma extensão de marcação. Extensões de marcação são tipicamente implementadas quando existe um requisito de escapar valores de atributo para serem diferentes de valores literais ou nomes de manipuladores, e o requisito é mais global do que simplesmente colocar conversores de tipo em certos tipos ou propriedades. Todas as extensões de marcação no XAML usam os caracteres { e } em sua sintaxe de atributo, que é a convenção pela qual o processador XAML reconhece que uma extensão de markup precisa processar o atributo. Para obter detalhes sobre extensões de marcação em geral, consulte Extensão de Marcação e XAML.

Consulte também

Conceitos

Styling and Templating

XAML Overview

Extensão de Marcação e XAML

Referência

Marcação de Extensão x:Type