Application.Resources Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define uma coleção de recursos de escopo de aplicativo, 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 da propriedade
Um objeto ResourceDictionary que contém zero ou mais recursos de escopo do aplicativo.
- Atributos
Exemplos
Este exemplo ilustra como usar XAML junto com recursos de escopo do aplicativo para criar uma aparência visual consistente. O primeiro exemplo é app.xaml; o segundo, de 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 a seguir mostra como definir um recurso de aplicativo em código e XAML (no arquivo App.xaml em um projeto WPF em C# ou no arquivo Application.xaml em um projeto do WPF Visual Basic).
// 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 a seguir mostra como obter um recurso de aplicativo no 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)
Comentários
A Resources propriedade pode ser usada para compartilhar recursos entre as janelas e elementos de um aplicativo. Além disso, a Resources propriedade é incluída no caminho de pesquisa de recursos, que é percorrido na seguinte ordem:
Elementos
Windows
Sistema
Consequentemente, os elementos de interface do usuário podem ser associados aos recursos de escopo do aplicativo. Além disso, se os recursos forem alterados, o sistema de recursos garantirá que as propriedades do elemento associadas a esses recursos sejam atualizadas automaticamente para refletir a alteração.
Os recursos de escopo do aplicativo fornecem uma maneira simples de dar suporte a um tema consistente em seu aplicativo. Você pode criar facilmente um tema em XAML usando a Application.Resources
marca. No entanto, se o aplicativo der suporte a vários temas, que podem conter um grande número de elementos de tema, talvez seja mais fácil gerenciá-los usando uma ResourceDictionary instância para cada tema. Dessa forma, um novo tema pode ser aplicado definindo a propriedade Resources como a apropriada ResourceDictionary.
Há duas considerações a serem consideradas ao usar Resources. Primeiro, a chave de dicionário é um objeto, portanto, você precisa usar exatamente a mesma instância de objeto ao definir e obter um valor de propriedade (observe que a chave diferencia maiúsculas de minúsculas ao usar uma cadeia de caracteres). Em segundo lugar, o valor do dicionário é um objeto, portanto, você precisará converter o valor para o tipo desejado ao obter um valor de propriedade.
Resources é thread safe e está disponível em qualquer thread.