Application.Resources Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece una colección de recursos del ámbito de la aplicación, como estilos y pinceles.
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 propiedad
Objeto ResourceDictionary que contiene cero o más recursos del ámbito de la aplicación.
- Atributos
Ejemplos
En este ejemplo se muestra cómo usar XAML junto con recursos de ámbito de aplicación para crear una apariencia visual coherente. El primer ejemplo es de App.xaml; el 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>
En el ejemplo siguiente se muestra cómo establecer un recurso de aplicación en código y XAML (en el archivo App.xaml en un proyecto WPF de C# o el archivo Application.xaml en un proyecto de WPF de 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>
En el ejemplo siguiente se muestra cómo obtener un recurso de aplicación en el 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)
Comentarios
La Resources propiedad se puede usar para compartir recursos entre las ventanas y los elementos de una aplicación. Además, la Resources propiedad se incluye en la ruta de búsqueda de recursos, que se recorre en el orden siguiente:
Elementos
Windows
Sistema
Por lo tanto, los elementos de la interfaz de usuario (UI) pueden enlazarse a recursos de ámbito de aplicación. Además, si cambian los recursos, el sistema de recursos garantiza que las propiedades de elemento enlazadas a esos recursos se actualicen automáticamente para reflejar el cambio.
Los recursos de ámbito de aplicación proporcionan una manera sencilla de admitir un tema coherente en toda la aplicación. Puedes crear fácilmente un tema en XAML mediante la Application.Resources
etiqueta . Sin embargo, si la aplicación admite varios temas, que pueden contener un gran número de elementos de tema, es posible que sea más fácil administrarlos mediante una ResourceDictionary instancia para cada tema. De esta manera, se puede aplicar un nuevo tema estableciendo la propiedad Resources en el adecuado ResourceDictionary.
Hay dos aspectos que hay que tener en cuenta al usar Resources. En primer lugar, la clave de diccionario es un objeto, por lo que debe usar exactamente la misma instancia de objeto al establecer y obtener un valor de propiedad (tenga en cuenta que la clave distingue mayúsculas de minúsculas al usar una cadena). En segundo lugar, el valor del diccionario es un objeto, por lo que deberá convertir el valor al tipo deseado al obtener un valor de propiedad.
Resources es seguro para subprocesos y está disponible en cualquier subproceso.