Application.Resources Propriedade

Definição

Obtém ou define uma coleção de recursos de âmbito de aplicação, como estilos e pincéis.

public:
 property System::Windows::ResourceDictionary ^ Resources { System::Windows::ResourceDictionary ^ get(); void set(System::Windows::ResourceDictionary ^ value); };
public System.Windows.ResourceDictionary Resources { get; set; }
[System.Windows.Markup.Ambient]
public System.Windows.ResourceDictionary Resources { get; set; }
member this.Resources : System.Windows.ResourceDictionary with get, set
[<System.Windows.Markup.Ambient>]
member this.Resources : System.Windows.ResourceDictionary with get, set
Public Property Resources As ResourceDictionary

Valor de Propriedade

Um ResourceDictionary objeto que contém zero ou mais recursos no âmbito da aplicação.

Atributos

Exemplos

Este exemplo ilustra como usar XAML juntamente com recursos de âmbito de aplicação para criar uma aparência visual consistente. O primeiro exemplo é do App.xaml; a segunda, do MainWindow.xaml.

<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    StartupUri="MainWindow.xaml"
    >

  <Application.Resources>
    <SolidColorBrush x:Key="BackgroundColor" Color="Yellow"></SolidColorBrush>
  </Application.Resources>

</Application>
<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ApplicationResourcesSnippetSample_XAML" 
    Height="300" 
    Width="300" 
    Background="{StaticResource BackgroundColor}"
    >
  <Grid>
    <!-- Additional XAML. -->
  </Grid>
</Window>

O exemplo seguinte mostra como definir um recurso de aplicação em código e XAML (no ficheiro App.xaml num projeto WPF C# ou no ficheiro Application.xaml num projeto Visual Basic WPF).

// Set an application-scope resource
Application.Current.Resources["ApplicationScopeResource"] = Brushes.White;
' Set an application-scope resource
Application.Current.Resources("ApplicationScopeResource") = Brushes.White
<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SDKSample.App"
    StartupUri="MainWindow.xaml" 
    Startup="App_Startup" 
    Exit="App_Exit">
    <Application.Resources>
        <SolidColorBrush x:Key="ApplicationScopeResource" Color="White"></SolidColorBrush>
    </Application.Resources>
</Application>

O exemplo seguinte mostra como obter um recurso de aplicação em código.

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

Observações

A Resources propriedade pode ser usada para partilhar recursos entre as janelas e elementos de uma aplicação. Além disso, a Resources propriedade está incluída no caminho de pesquisa de recursos, que é percorrido pela seguinte ordem:

  1. Elementos

  2. Windows

  3. Application.Resources

  4. Sistema

Consequentemente, os elementos da interface de utilizador (UI) podem ser atribuídos a recursos de âmbito de aplicação. Além disso, se os recursos mudarem, o sistema de recursos assegura que as propriedades dos elementos ligadas a esses recursos são automaticamente atualizadas para refletir a alteração.

Os recursos de âmbito de aplicação fornecem uma forma simples de suportar um tema consistente em toda a sua aplicação. Pode facilmente criar um tema em XAML usando a Application.Resources etiqueta. No entanto, se a sua aplicação suportar múltiplos temas, que podem conter um grande número de elementos de tema, pode ser mais fácil geri-los usando uma ResourceDictionary instância para cada tema. Desta forma, um novo tema pode ser aplicado definindo a propriedade Recursos para a apropriada ResourceDictionary.

Há duas considerações a ter em conta ao usar Resources. Primeiro, a chave do dicionário é um objeto, por isso precisa de usar exatamente a mesma instância do objeto ao definir e obter um valor de propriedade (note que a chave é sensível a maiúsculas minúsculas quando se usa uma string). Em segundo lugar, o valor do dicionário é um objeto, por isso terá de converter o valor para o tipo desejado ao obter um valor de propriedade.

Resources É seguro para threads e está disponível em qualquer thread.

Aplica-se a