Partilhar via


Como: Usar um Dicionário de Recursos no Escopo do Aplicativo

Este exemplo mostra como usar um dicionário de recursos personalizados com escopo de aplicativo.

Exemplo

Application expõe um armazenamento de escopo de aplicativo para recursos compartilhados: Resources. Por padrão, Resources é inicializado com uma instância do tipo ResourceDictionary. Usa-se esta instância quando ao obter-se e definir-se propriedades de escopo de aplicativo com a propriedade Resources (consulte Como: Get and Set Application-Scope Resources).

Se você tiver vários recursos que você definiu usando Resources, você pode usar um dicionário de recursos personalizados para armazenar esses recursos e definir Resources com ele em vez disso. Declara-se um dicionário de recursos personalizados usando marcação, assim:

<ResourceDictionary
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" >
    <SolidColorBrush x:Key="StandardSolidColorBrush" Color="White" />
    <LinearGradientBrush x:Key="StandardLinearGradientBrush" StartPoint="0.0,0.0" EndPoint="1.0,1.0">
        <LinearGradientBrush.GradientStops>
            <GradientStop Color="White" Offset="0" />
            <GradientStop Color="Black" Offset="1" />
        </LinearGradientBrush.GradientStops>
    </LinearGradientBrush>
</ResourceDictionary>

A troca de dicionários de recursos inteiros usando Resources permite que você ofereça suporte a temas no escopo do aplicativo, onde cada tema é encapsulado por um único dicionário de recursos. Consulte o Exemplo de aplicativo com tema.

Para obter recursos de escopo de aplicativo a partir do dicionário de recursos exposto por Resources, seja criado por Application ou seu, use o código a seguir:

// Get an application-scope resource
Brush whiteBrush = (Brush)Application.Current.Resources["ApplicationScopeResource"];

Duas considerações devem ser feitas ao se usar Resources. Primeiro, a chave do dicionário é um objeto, então você precisa utilizar exatamente a mesma instância de objeto quando estiver definindo e obtendo o valor de uma propriedade (note que a chave diferencia maiúsculas de minúsculas quando usando uma string). Segundo, o valor do dicionário é um objeto, então você precisará converter o valor para o tipo desejado quando estiver obtendo o valor de uma propriedade.

Consulte também

Referência

ResourceDictionary

Resources