Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este ejemplo se muestra cómo definir y usar un diccionario de recursos personalizados de ámbito de aplicación.
Ejemplo
Application ofrece un almacén de ámbito de aplicación para recursos compartidos: Resources. De forma predeterminada, la Resources propiedad se inicializa con una instancia del ResourceDictionary tipo . Esta instancia se usa al obtener y establecer propiedades de ámbito de aplicación mediante Resources. Para obtener más información, vea Cómo: Obtener y establecer un recurso de Application-Scope.
Si tiene varios recursos que estableció mediante Resources, puede utilizar un diccionario de recursos personalizado para almacenar esos recursos y establecer Resources con él en su lugar. A continuación se muestra cómo declarar un diccionario de recursos personalizado mediante XAML.
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://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 de ámbito de aplicación, donde cada tema está encapsulado por un único 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 se pueden obtener recursos de ámbito de 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 también puede obtener los recursos en el código.
//Get a resource from the ResourceDictionary in code
Brush gradientBrush = (Brush)Application.Current.FindResource("StandardLinearGradientBrush");
'Get a resource from the ResourceDictionary in code
Dim GradientBrush As Brush = Application.Current.FindResource("StandardLinearGradientBrush")
Hay dos consideraciones que debe 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 tendrá que convertir el valor al tipo deseado al obtener un valor de propiedad.
Algunos tipos de recursos pueden usar automáticamente una propiedad definida por el tipo como una clave explícita, como los Style tipos y DataTemplate . Esto puede invalidar el x:Key
valor. Para garantizar que se respeta la x:Key
clave, declárela antes de la propiedad de clave explícita. Para obtener más información, vea Estilos, DataTemplates y claves implícitas.
Consulte también
.NET Desktop feedback