FrameworkElement.Resources Property

Obtiene el diccionario de recursos definido localmente. En XAML, es posible establecer los elementos de recursos como elementos de objetos secundarios de un elemento de propiedad frameworkElement.Resources, mediante la sintaxis de colección implícita de XAML.

Sintaxis


public ResourceDictionary Resources { get; set; }


<frameworkElement>
  <frameworkElement.Resources>
    oneOrMoreResourceElements
  </frameworkElement.Resources>
</frameworkElement>

XAML Values

oneOrMoreResourceElements

Uno o más elementos de objeto, cada uno de los cuales crea y define un recurso. Cada elemento de propiedad de recurso de un ResourceDictionary debe tener una clave única (normalmente x:Key, especificada como atributo, con un valor de cadena). La clave se utiliza cuando se recuperan valores del objeto ResourceDictionary mediante programación o mediante el uso de la extensión StaticResource de XAML.

Valor de propiedades

Tipo: ResourceDictionary

Diccionario de recursos actual definido localmente, donde se puede tener acceso a cada recurso por su clave.

Comentarios

El propósito principal de los elementos de una colección de Resources consiste en hacer referencia a ellos desde otras partes de XAML mediante una referencia de StaticResource. Si desea tener acceso a la colección Resources en tiempo de ejecución, puede utilizar las API de la plantilla correspondiente para consultar, agregar o quitar elementos de ResourceDictionary.

Para obtener más información y ejemplos, vea Referencias de ResourceDictionary y recurso XAML.

ResourceDictionary es una colección con clave, que se basa en una plantilla IMap<K,V> si está programando con C++, o en una plantilla IDictionary<TKey,TValue> si está programando con C# o Microsoft Visual Basic.

Application también tiene una propiedad Resources, que se puede utilizar para almacenar recursos que deben ser accesibles desde más de una página de la aplicación. Los recursos para controles personalizados también pueden almacenarse en un archivo XAML independiente creado por la plantilla de proyecto predeterminada de un control con plantilla.

Los elementos que aparecen en una colección de XAML Resources no son necesariamente la totalidad de los recursos definidos por XAML disponibles en tiempo de ejecución. Otros recursos están disponibles en tiempo de ejecución, debido a la influencia de la propiedad MergedDictionaries en ResourceDictionary. El valor de MergedDictionaries puede introducir otros diccionarios como recursos definidos por el sistema, por ejemplo, los recursos de las plantillas de control XAML predeterminadas. Asimismo, también hay recursos de runtime específicos de tema disponibles en la propiedad ThemeDictionaries similar. Si tiene acceso a una colección Resources en tiempo de ejecución y consulta una clave específica mediante el indizador Item o el método Lookup, puede obtener acceso a estos recursos y recuperarlos. Para obtener más información, vea Referencias de ResourceDictionary y recurso XAML.

Ejemplos

En este ejemplo se muestra una definición XAML de un diccionario Resources simple que contiene un elemento, DataTemplate.


<Grid.Resources>
  <DataTemplate x:Key="CBTemplate">
    <Grid>
      <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
      </Grid.ColumnDefinitions>
      <Image Grid.Column="0" Width="50" Height="50" 
        Source="{Binding Photo}" Stretch="Fill"/>
      <TextBlock Grid.Column="1" Text="{Binding Title}" 
        Margin="10" HorizontalAlignment="Left" FontSize="20"/>
    </Grid>
  </DataTemplate>
</Grid.Resources>


En este ejemplo se muestra un acceso típico de código a la propiedad Resources. En este ejemplo, las referencias de la propiedad Resources están alineadas y seguidas inmediatamente de un uso de indizador que recupera un elemento ResourceDictionary con la clave de cadena RainbowBrush. Observe la conversión explícita; el valor devuelto para los elementos de ResourceDictionary es siempre un objeto sin tipo.


    void SetBGByResource(object sender, RoutedEventArgs e)
    {
      Button b = sender as Button;
      b.Background = (Brush)this.Resources["RainbowBrush"];
    }


Requisitos

Cliente mínimo admitido

Windows 8

Servidor mínimo admitido

Windows Server 2012

Espacio de nombres

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadatos

Windows.winmd

Vea también

FrameworkElement
ResourceDictionary
x:Key
Referencias de ResourceDictionary y recurso XAML
StaticResource
Ejemplo de recursos y localización de la aplicación
Información general sobre XAML

 

 

Mostrar:
© 2014 Microsoft