Atributo x:Shared
Quando você o define para false, modifica o comportamento de aquisição de recurso Windows Presentation Foundation (WPF) tal que requisições para um recurso irão criar novas instâncias em cada requisição, ao invés de compartilhar a mesma instância para cada requisição.
Uso de atributos XAML
<ResourceDictionary>
<object x:Shared="false".../>
</ResourceDictionary>
Comentários
A condição padrão de x:Shared para recursos é true. Esta condição significa que qualquer requisição de recurso sempre retorna a mesma instância. Modificando um objeto retornado por meio de um recurso API como FindResource, ou modificando um objeto diretamente em um ResourceDictionary, modifica o recurso original. Se as referências para aquele recurso eram referências dinâmicas de recursos, então os consumidores daquele recurso irão receber um recurso modificado. Se a referência par ao recurso fosse estática, mudanças no recurso após o tempo de processamento do XAML são irrelevantes. Para exemplos em referência de recursos estáticas versus dinâmicas, consulte Visão geral sobre Recursos.)
Especificando x:Shared="true" é incomum, porque aquele já é o padrão. Não há código direto equivalente para x:Shared.
Um cenário para x:Shared="false" é se você definir uma classe derivada FrameworkElement ou FrameworkContentElement como um recurso e introduzir o recurso de elemento no modelo de conteúdo. x:Shared="false" permite um recurso de elemento ser introduzido várias vezes na mesma coleção (como UIElementCollection). Sem x:Shared="false" isto seria ilegal, orque a coleção força a unicidade do seu conteúdo. Mas o comportamento de x:Shared="false" basicamente cria outra instância idêntica do recurso, ao invés de retornar a mesma instância.
Outro cenário para x:Shared="false" é se você usar um recurso Freezable para valores de animação, mas quer modificar o recurso em cada animação.
A string "false" não é sensível a letras maiúsculas e minúsculas.
x:Shared só é legal dentro das seguintes condições:
O ResourceDictionary que contem os itens com x:Shared devem ser compilados. O ResourceDictionary não pode estar em XAML solto ou usado para temas.
O ResourceDictionary que contém os itens não podem estar aninhados em outro ResourceDictionary. Por exemplo, você não pode usar o x:Shared para itens em um ResourceDictionary que está em um Style que já está em um item ResourceDictionary.