FrameworkContentElement.Resources Propiedad

Definición

Obtiene o establece el diccionario de recursos actuales definidos localmente.

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

Recursos actuales definidos localmente. Éste es un diccionario de recursos, donde se tiene acceso a los recursos dentro del diccionario por clave.

Atributos

Ejemplos

En el ejemplo siguiente se establece una Resources colección en un FlowDocument elemento raíz. FlowDocument es una opción típica porque es una de las pocas FrameworkContentElement clases que tienen sentido como elemento raíz y los recursos se almacenan generalmente en la raíz de la página o en niveles incluso superiores, como en la aplicación.

<FlowDocument
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class=" SDKSample.Page2">
  <FlowDocument.Resources>
    <Style TargetType="{x:Type Paragraph}" x:Key="BluePara">
      <Setter Property="Background" Value="Blue"/>
      <Setter Property="FontSize" Value="18"/>
      <Setter Property="Foreground" Value="LightBlue"/>
      <Setter Property="FontFamily" Value="Trebuchet MS"/>
    </Style>
  </FlowDocument.Resources>
  <Paragraph Style="{StaticResource BluePara}">Lorem ipsum etc.</Paragraph>
</FlowDocument>

Comentarios

Los diccionarios de recursos que se pueden definir completamente o parcialmente en lenguaje de marcado de aplicación extensible (XAML) se crean normalmente como un elemento de propiedad y normalmente se encuentran en el elemento raíz de cualquier página individual o para la aplicación. Colocar el diccionario de recursos en este nivel facilita la búsqueda de elementos secundarios individuales en la página (o desde cualquier página, en el caso de la aplicación). En la mayoría de los escenarios de aplicación, se recomienda definir estilos como elementos de objeto dentro de un diccionario de recursos o definirse como recursos externos para que todo el recurso de estilo pueda ser independiente (este enfoque ayuda a separar las responsabilidades del diseñador de las responsabilidades del desarrollador separando los archivos físicos que deben editarse).

Tenga en cuenta que esta propiedad devuelve solo el diccionario de recursos declarado directamente dentro de ese elemento. Esto es diferente del proceso de búsqueda de recursos real, donde un elemento secundario puede acceder a cualquiera de los recursos definidos en cada elemento primario, buscando de forma recursiva hacia arriba.

También se puede hacer referencia a los recursos mediante código desde dentro de la colección, pero tenga en cuenta que definitivamente los recursos creados en XAML no serán accesibles hasta que el elemento que declare el diccionario no sea accesible hasta que Loaded el elemento que declara el diccionario. De hecho, los recursos se analizan de forma asincrónica y ni siquiera el Loaded evento es una garantía de que puedes hacer referencia a un recurso definido por XAML. Por este motivo, normalmente solo debes acceder a los recursos definidos por XAML como parte del código en tiempo de ejecución, o a través de otras técnicas XAML, como estilos o referencias de extensión de recursos para valores de atributo. Cuando se accede a los recursos a través del código, es esencialmente equivalente a una referencia DynamicResource realizada desde XAML.

El subyacente ResourceDictionary admite los métodos necesarios para agregar, quitar o consultar recursos desde dentro de la colección mediante código. La Resources propiedad se puede establecer para admitir el escenario de reemplazar completamente la colección de recursos de un elemento para que sea una nueva o diferente ResourceDictionary.

Observe que la sintaxis XAML que se muestra no incluye un elemento para .ResourceDictionary Este es un ejemplo de sintaxis de colección implícita; Se puede omitir una etiqueta que representa el elemento de colección. Los elementos que se agregan como elementos a la colección se especifican en su lugar. Para obtener más información sobre las colecciones implícitas y XAML, consulta Sintaxis XAML en detalle. Un caso en ResourceDictionary el que todavía se especifica explícitamente como un elemento es si se introduce un diccionario combinado, en cuyo caso normalmente no hay elementos secundarios para ese ResourceDictionary. Para más información, consulte Diccionarios de recursos combinados.

Uso de elementos de propiedad XAML

<object>  
  <object.Resources>  
    oneOrMoreResourceElements  
  </object.Resources>  
</object>  

Valores XAML

oneOrMoreResourceElements
Uno o varios elementos de objeto, cada uno de los cuales define un recurso. Cada elemento de propiedad de recurso dentro de cada ResourceDictionary debe tener un valor único para la directiva x:Key, que actúa como clave única cuando los valores se recuperan de ResourceDictionary.

Se aplica a

Consulte también