Compartir a través de


Cómo: Usar un diccionario de recursos en el ámbito de aplicación

En este ejemplo se muestra cómo definir y usar un diccionario de recursos personalizado de ámbito de aplicación.

Ejemplo

Application expone un almacén de ámbito de aplicación para los recursos compartidos: Resources. De manera predeterminada, la propiedad Resources se inicializa con una instancia del tipo ResourceDictionary. Esta instancia se usa al obtener y establecer propiedades del ámbito de aplicación mediante la propiedad Resources. (Para obtener más información, vea Cómo: Obtener y establecer recursos en el ámbito de aplicación).

Si tiene varios recursos que se establecen mediante Resources, en su lugar puede utilizar un diccionario de recursos personalizado para almacenar esos recursos y establecer Resources en dicho diccionario. A continuación se muestra cómo declarar un diccionario de recursos personalizado mediante XAML.

<ResourceDictionary 
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" >
    <SolidColorBrush x:Key="StandardSolidColorBrush" Color="Blue" />
    <LinearGradientBrush x:Key="StandardLinearGradientBrush" StartPoint="0.0,0.0" EndPoint="1.0,1.0">
        <LinearGradientBrush.GradientStops>
            <GradientStop Color="White" Offset="0" />
            <GradientStop Color="Black" Offset="1" />
        </LinearGradientBrush.GradientStops>
    </LinearGradientBrush>
</ResourceDictionary>

El intercambio de diccionarios de recursos completos mediante Resources permite admitir temas del ámbito de aplicación, donde cada tema se encapsula en un solo diccionario de recursos. En el ejemplo siguiente se muestra cómo establecer ResourceDictionary.

<!--Set the Application ResourceDictionary-->
<Application.Resources>
    <ResourceDictionary Source="MyResourceDictionary.xaml" />
</Application.Resources>

A continuación se muestra cómo puede obtener recursos del ámbito de la aplicación del diccionario de recursos expuesto por Resources en XAML.

<!--Set the brush as a StaticResource from the ResourceDictionary-->
<Rectangle Name="Rect" Height="200" Width="100" Fill="{StaticResource ResourceKey=StandardSolidColorBrush}" />

A continuación se muestra cómo puede obtener también los recursos en código.

'Get a resource from the ResourceDictionary in code
Dim GradientBrush As Brush = Application.Current.FindResource("StandardLinearGradientBrush")
//Get a resource from the ResourceDictionary in code
Brush gradientBrush = (Brush)Application.Current.FindResource("StandardLinearGradientBrush");

Debe tener en cuenta dos aspectos 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 al obtener un valor de propiedad. (Tenga en cuenta que la clave distingue mayúsculas de minúsculas cuando se usa una cadena.) En segundo lugar, el valor del diccionario es un objeto, por lo que tendrá que convertir el valor al tipo que desee cuando obtenga un valor de propiedad.

Vea también

Referencia

ResourceDictionary

Resources

Conceptos

Información general sobre recursos

Diccionarios de recursos combinados