Compartilhar via


Atributo x:Shared

Quando definido como false, que modifica o comportamento de recuperação de recursos do WPF para que as solicitações para o recurso atribuído em grande parte criam uma nova instância para cada solicitação em vez de compartilhar a mesma instância de todas as solicitações.

XAML Attribute Usage

<ResourceDictionary>
  <object x:Shared="false".../>
</ResourceDictionary>

Comentários

x:Sharedé mapeado para o namespace XAML linguagem XAML e é reconhecido como um elemento de linguagem XAML válido por.NET Framework XAML Services e seus leitores XAML. No entanto, os recursos declarados de x:Shared são apenas relevantes para aplicativos WPF e o analisador do WPF XAML. No WPF, x:Shared é somente útil como um atributo quando ele é aplicado a um objeto que existe dentro de um WPF ResourceDictionary. Outros usos não lançar exceções de análise ou outros erros, mas não têm nenhum efeito.

O significado de x:Shared não for especificado na especificação de linguagem XAML. Outras implementações de XAML, como aqueles que se baseiam.NET Framework XAML Services, não fornecem necessariamente o compartilhamento de recursos suporte. Tais implementações de XAML poderiam fornecer um comportamento semelhante na estrutura de suporte também usada x:Shared valores.

No WPF, o padrão x:Shared condição de recursos é true. This condition means that any given resource request always returns the same instance.

Modificando um objeto que é retornado por meio de um recurso de API, como FindResource, ou modificar um objeto diretamente dentro de um ResourceDictionary, altera o recurso original. Se as referências de recurso dinâmico referências a esse recurso, os consumidores desse recurso obtém o recurso alterado.

Se as referências para o recurso foram referências de recurso estático, altera para o recurso após XAML o tempo de processamento são irrelevantes. Para obter mais informações sobre estáticas versus referências de recursos dinâmicos, consulte Visão geral sobre Recursos.

Especificando explicitamente x:Shared="true" raramente é feito, porque é que já o padrão. Não há nenhum código direto equivalente para x:Shared no modelo de objeto WPF; Ele só pode ser especificado um uso XAML e deve ser processado pelo comportamento padrão do WPF ou em um fluxo de nó XAML intermediário no caminho de carga se processado usando.NET Framework XAML Services e seus leitores XAML.

Um cenário para x:Shared="false" é se você definir um FrameworkElement ou FrameworkContentElement derivado da classe como um recurso e, em seguida, você apresentar o recurso de elemento em um modelo de conteúdo. x:Shared="false"permite que um recurso de elemento ser apresentado várias vezes na mesma coleção (como um UIElementCollection). Sem x:Shared="false" isso é inválido porque a coleção aplique a exclusividade de conteúdo. No entanto, o x:Shared="false" comportamento cria outra instância idêntica do recurso em vez de retornar a mesma instância.

Outro cenário para x:Shared="false" é se você usar um Freezable recursos para os valores de animação mas que desejam modificar o recurso em um por base a animação.

A manipulação de seqüência de caracteres de false é o caso, não sensível.

No WPF, x:Shared só é válida nas seguintes condições:

Consulte também

Referência

ResourceDictionary

Conceitos

Visão geral sobre Recursos

Outros recursos

Elementos Básicos