Application.Resources Application.Resources Application.Resources Application.Resources Property

Definición

Obtiene o establece una colección de recursos del ámbito de la aplicación, como estilos y pinceles.Gets or sets a collection of application-scope resources, such as styles and brushes.

public:
 property System::Windows::ResourceDictionary ^ Resources { System::Windows::ResourceDictionary ^ get(); void set(System::Windows::ResourceDictionary ^ value); };
[System.Windows.Markup.Ambient]
public System.Windows.ResourceDictionary Resources { get; set; }
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.A ResourceDictionary object that contains zero or more application-scope resources.

Ejemplos

En este ejemplo se muestra cómo usar XAML junto con recursos del ámbito de aplicación para crear un aspecto visual coherente.This example illustrates how to use XAML together with application-scope resources to create a consistent visual appearance. El primer ejemplo es de app. Xaml. el segundo, de MainWindow. Xaml.The first example is from App.xaml; the second, from 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 C# de un proyecto de WPF o el archivo Application. XAML en un proyecto de WPF Visual Basic).The following example shows how to set an application resource in code and XAML (in the App.xaml file in a C# WPF project or the Application.xaml file in a Visual Basic WPF project).

// 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.The following example shows how to get an application resource in code.

// 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 utilizar para compartir recursos entre las ventanas y los elementos de una aplicación.The Resources property can be used to share resources across the windows and elements of an application. Además, la Resources propiedad se incluye en la ruta de acceso de búsqueda de recursos, que se recorre en el orden siguiente:Additionally, the Resources property is included in the resource lookup path, which is traversed in the following order:

  1. ElementosElements

  2. WindowsWindows

  3. Application.Resources

  4. SistemaSystem

Por consiguiente, interfaz de usuario (UI)user interface (UI) los elementos se pueden enlazar a recursos del ámbito de la aplicación.Consequently, interfaz de usuario (UI)user interface (UI) elements can bind to application-scope resources. Además, si los recursos cambian, el sistema de recursos garantiza que las propiedades de elemento que están enlazadas a esos recursos se actualizan automáticamente para reflejar el cambio.Additionally, if resources change, the resource system ensures that element properties which are bound to those resources are automatically updated to reflect the change.

Los recursos del ámbito de aplicación proporcionan una manera sencilla de admitir un tema coherente en toda la aplicación.Application-scope resources provide a simple way to support a consistent theme across your application. Puede crear fácilmente un tema en XAMLXAML mediante la Application.Resources etiqueta.You can easily create a theme in XAMLXAML by using the Application.Resources tag. Sin embargo, si la aplicación admite varios temas, que pueden contener un gran número de elementos de tema, podría ser más fácil administrarlos mediante ResourceDictionary una instancia para cada tema.However, if your application supports multiple themes, which may contain a large number of theme elements, it might be easier to manage them using one ResourceDictionary instance for each theme. De esta manera, se puede aplicar un nuevo tema estableciendo la propiedad Resources en el ResourceDictionarycorrespondiente.In this way, a new theme can be applied by setting the Resources property to the appropriate ResourceDictionary.

Hay dos consideraciones que se deben tener en Resourcescuenta al usar.There are two considerations to make when using Resources. En primer lugar, la clave del diccionario es un objeto, por lo que debe usar exactamente la misma instancia de objeto cuando ambos establecen y obtienen un valor de propiedad (tenga en cuenta que la clave distingue entre mayúsculas y minúsculas cuando se usa una cadena).First, the dictionary key is an object, so you need to use exactly the same object instance when both setting and getting a property value (note that the key is case-sensitive when using a string). En segundo lugar, el valor del diccionario es un objeto, por lo que tendrá que convertir el valor al tipo deseado al obtener un valor de propiedad.Second, the dictionary value is an object, so you will need to convert the value to the desired type when getting a property value.

Resourceses seguro para subprocesos y está disponible desde cualquier subproceso.Resources is thread safe and is available from any thread.

Se aplica a