Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Información
El tema que ha solicitado se muestra abajo. Sin embargo, este tema no se encuentra en la biblioteca.

FrameworkElement.Resources (Propiedad)

Obtiene o establece el diccionario de recursos definido localmente.

Espacio de nombres:  System.Windows
Ensamblado:  PresentationFramework (en PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[AmbientAttribute]
public ResourceDictionary Resources { get; set; }
<object>
  <object.Resources>
    oneOrMoreResourceElements
  </object.Resources>
</object>

Valores XAML

oneOrMoreResourceElements

Uno o más elementos de objeto, cada uno de los cuales define un recurso. Cada elemento de propiedad de recurso de ResourceDictionary debe tener un valor único para el x:Key (Directiva), que actúa como clave única cuando se recuperan valores de ResourceDictionary.

Valor de propiedad

Tipo: System.Windows.ResourceDictionary
Diccionario de recursos actual definido localmente, donde se puede tener acceso a cada recurso por clave.

Los diccionarios de recursos que se pueden definir por completo o parcialmente en Lenguaje XAML se crean normalmente como un elemento de propiedad y están normalmente en el elemento raíz de cualquier página individual o de la aplicación. Colocar el diccionario de recursos en este nivel simplifica la búsqueda de elementos secundarios individuales en la página (o en cualquier página, en el caso de la aplicación). En la mayoría de los escenarios de aplicación, se recomienda que los estilos se definan como elementos de objeto dentro de un diccionario de recursos o como recursos externos para que el recurso de estilo completo pueda ser autónomo (este enfoque ayuda a dividir las responsabilidades del diseñador de las del programador separando los archivos físicos que se deben modificar).

Observe que esta propiedad devuelve sólo 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 tener acceso a cualquiera de los recursos definidos en cada elemento primario, que busca de forma recursiva y ascendente.

El código también puede hacer referencia a los recursos desde la colección, pero tenga en cuenta que no se puede tener acceso definitivamente a los recursos creados en XAML hasta que el elemento que declara el diccionario haya provocado el evento Loaded. De hecho, los recursos se analizan de forma asincrónica y ni siquiera el evento Loaded es una garantía de que se pueda hacer referencia a un recurso XAML definido. Por esta razón, normalmente sólo debe obtener acceso a los recursos XAML definidos 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 los valores de atributo. Al tener acceso a los recursos a través del código, es esencialmente equivalente a una referencia de extensión de marcado DynamicResource realizada desde XAML.

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

Observe que la sintaxis XAML mostrada no incluye un elemento para ResourceDictionary. Éste es un ejemplo de sintaxis de colección implícita; se puede omitir una etiqueta que representa el elemento de colección. En su lugar, se especifican los elementos que se agregan como elementos a la colección. Para obtener más información sobre las colecciones implícitas y XAML, vea Detalles de la sintaxis XAML. Un caso donde todavía se especifica ResourceDictionary explícitamente como elemento es cuando se introduce un diccionario combinado, en cuyo caso no hay normalmente elementos secundarios de ResourceDictionary. Para obtener información detallada, vea Diccionarios de recursos combinados.

En este ejemplo se muestra cómo definir un recurso y hacer referencia a él utilizando un atributo en Lenguaje XAML.

En el ejemplo siguiente se definen dos tipos de recursos: un recurso SolidColorBrush y varios recursos Style. El recurso SolidColorBrushMyBrush se utiliza para proporcionar el valor de varias propiedades, cada una de las cuales toma un valor de tipo Brush. Cada uno de los recursos Style (PageBackground, TitleText y Label) está destinado a un tipo de control determinado. Los estilos establecen varias propiedades diferentes para los controles de destino, cuando se hace referencia a ese recurso de estilo por su clave de recurso y se utiliza para establecer la propiedad Style de varios elementos de control concretos definidos en XAML.

Observe que una de las propiedades de de los establecedores (setters) del estilo Label también hace referencia al recurso MyBrush definido anteriormente. Se trata de una técnica común, pero es importante recordar que los recursos se analizan y escriben en un diccionario de recursos en el orden en que se indican. También se solicitan los recursos en el orden en que se encuentran en el diccionario si se utiliza Extensión de marcado StaticResource para hacer referencia a ellos desde el interior de otro recurso. Asegúrese de que todos los recursos a los que haga referencia se hayan definido en la colección de recursos antes del punto en que se solicita ese recurso. Si es necesario, puede omitir el orden estricto de creación de referencias a recursos utilizando la Extensión de marcado DynamicResource para hacer referencia lugar al recurso en tiempo de ejecución, pero debe tener en cuenta que esta técnica de DynamicResource influye en el rendimiento. Para obtener información detallada, vea Recursos XAML.


<Page Name="root"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Page.Resources>
    <SolidColorBrush x:Key="MyBrush" Color="Gold"/>
    <Style TargetType="Border" x:Key="PageBackground">
      <Setter Property="Background" Value="Blue"/>
    </Style>
    <Style TargetType="TextBlock" x:Key="TitleText">
      <Setter Property="Background" Value="Blue"/>
      <Setter Property="DockPanel.Dock" Value="Top"/>
      <Setter Property="FontSize" Value="18"/>
      <Setter Property="Foreground" Value="#4E87D4"/>
      <Setter Property="FontFamily" Value="Trebuchet MS"/>
      <Setter Property="Margin" Value="0,40,10,10"/>
    </Style>
    <Style TargetType="TextBlock" x:Key="Label">
      <Setter Property="DockPanel.Dock" Value="Right"/>
      <Setter Property="FontSize" Value="8"/>
      <Setter Property="Foreground" Value="{StaticResource MyBrush}"/>
      <Setter Property="FontFamily" Value="Arial"/>
      <Setter Property="FontWeight" Value="Bold"/>
      <Setter Property="Margin" Value="0,3,10,0"/>
    </Style>
  </Page.Resources>
  <StackPanel>
    <Border Style="{StaticResource PageBackground}">
      <DockPanel>
        <TextBlock Style="{StaticResource TitleText}">Title</TextBlock>
        <TextBlock Style="{StaticResource Label}">Label</TextBlock>
        <TextBlock DockPanel.Dock="Top" HorizontalAlignment="Left" FontSize="36" Foreground="{StaticResource MyBrush}" Text="Text" Margin="20" />
        <Button DockPanel.Dock="Top" HorizontalAlignment="Left" Height="30" Background="{StaticResource MyBrush}" Margin="40">Button</Button>
        <Ellipse DockPanel.Dock="Top" HorizontalAlignment="Left" Width="100" Height="100" Fill="{StaticResource MyBrush}" Margin="40" />
      </DockPanel>
    </Border>
  </StackPanel>
</Page>


.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

Mostrar:
© 2015 Microsoft