Application.Resources Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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:
Elementos
Windows
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.