Application.Resources Propriedade

Definição

Obtém uma coleção de recursos no escopo do aplicativo, como estilos, modelos e pincéis.

ResourceDictionary Resources();

void Resources(ResourceDictionary value);
public ResourceDictionary Resources { get; set; }
var resourceDictionary = application.resources;
application.resources = resourceDictionary;
Public Property Resources As ResourceDictionary
<Application>
  <Application.Resources>
    oneOrMoreResourceElements
  </Application.Resources>
</Application>
 

Valor da propriedade

Um objeto ResourceDictionary que contém zero ou mais recursos no escopo do aplicativo.

Exemplos

Este exemplo mostra como declarar um recurso específico do aplicativo (este cria uma instância de classe de conversor comum proveniente de modelos iniciais). Em seguida, ele adiciona um elemento de propriedade Application.MergedDictionaries com elementos ResourceDictionary dentro, cada um fazendo referência a um arquivo XAML por URI como a Origem.

<Application.Resources>
    <ResourceDictionary>
      <common:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/> 
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="rd1.xaml" />
        <ResourceDictionary Source="rd2.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Application.Resources>

Comentários

O modelo de dicionário de recursos no Windows Runtime dá suporte a muitos dos conceitos de recurso XAML com os quais você pode estar familiarizado se tiver criado aplicativos usando Windows Presentation Foundation (WPF) ou Microsoft Silverlight. Para obter mais informações, consulte Referências de recursos de ResourceDictionary e XAML.

Os recursos definidos no ResourceDictionary que preenche o Application.Resources elemento de propriedade estão disponíveis para recuperação de qualquer página do aplicativo. Isso é vantajoso se muitas das páginas do seu aplicativo estiverem usando o mesmo recurso. Por exemplo, se você tiver um recurso SolidColorBrush que está usando para esquemas de cores na interface do usuário do aplicativo e essa cor for usada na maioria das suas páginas, fará sentido declarar que SolidColorBrush no Application.Resources usado para Application.Resources.

Quando você adicionar recursos ao Application.Resources, adicione-os antes ou depois de qualquer existente ResourceDictionary.MergedResources. As regras de XAML não permitem que você coloque conteúdo em ambos os lados de uma marca de elemento de propriedade. Para obter mais informações, consulte Guia de sintaxe XAML.

Anotações para versões anteriores

Otimização de carregamento de recursos no Windows 8.1

Começando com Windows 8.1, há uma otimização de carregamento de recursos habilitada pelo modelo de aplicativo e pelo analisador XAML Windows Runtime. Para Windows 8, o analisador XAML carregou recursos de app.xaml e criou cada um deles como objetos como parte da inicialização. Isso não era muito eficiente se houvesse grandes dicionários lá. Além disso, esses recursos incluíam os itens que eram necessários para os três temas, e dois dos três temas nem sequer estariam ativos. Começando com Windows 8.1, o analisador XAML só cria os recursos quando eles são solicitados especificamente. A solicitação pode vir de outros recursos ou do aplicativo ou da página XAML conforme cada um é carregado. Esse comportamento do analisador minimiza o tempo necessário para ler o dicionário no nível do aplicativo no momento da inicialização e permite que a primeira página do aplicativo seja carregada mais rapidamente na maioria dos casos. Os recursos necessários para outros temas inativos no momento só serão carregados se esse tema for escolhido para se tornar o tema ativo pelo usuário. Nesse momento, qualquer recurso em que a extensão de marcação {ThemeResource} foi usada para a solicitação é recalculada com base no tema recém-ativo.

Comportamento do Windows 8

Windows 8 não tinha as otimizações descritas acima. O ResourceDictionary para Application.Resources teve que concluir a análise antes que qualquer página diferente da tela inicial pudesse ser carregada na Janela do aplicativo. Por isso, você pode ver algumas diferenças de tempo ao redirecionar seu aplicativo para Windows 8.1. O aplicativo deve estar carregando mais rápido, no entanto, talvez não seja possível isolar essa melhoria em relação a outras alterações feitas no código do aplicativo como parte do redirecionamento. Alguns dos locais em que você pode ver evidências de alterações de tempo devido ao carregamento otimizado de recursos incluem quando os construtores são chamados pelo analisador, para objetos como objetos Application , conversores ou outras classes personalizadas. Os aplicativos que foram compilados para Windows 8, mas estão sendo executados no Windows 8.1, continuam a adotar o comportamento do Windows 8.

Para obter mais informações sobre desempenho e fatoramento de recursos XAML, consulte Otimizar sua marcação XAML.

Aplica-se a

Confira também