Application.Resources Property

Obtiene una colección de recursos del ámbito de la aplicación, como estilos, plantillas y pinceles.

Sintaxis


public ResourceDictionary Resources { get; set; }


<Application>
  <Application.Resources>
    oneOrMoreResourceElements
  </Application.Resources>
</Application>
 

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 cada ResourceDictionary debe contener un valor único para x:Key, que actúa como clave única cuando se recuperan valores de ResourceDictionary.

Valor de propiedades

Tipo: ResourceDictionary

Un objeto ResourceDictionary que contiene cero o más recursos del ámbito de la aplicación.

Comentarios

El modelo de diccionario de recursos en admite muchos de los Windows en tiempo de ejecución admite muchos de los conceptos de recursos XAML con los que puede estar familiarizado si ha creado aplicaciones con Windows Presentation Foundation (WPF) o Microsoft Silverlight. Para obtener más información, vea Referencias de ResourceDictionary y recurso XAML.

Los recursos que se definen en el objeto ResourceDictionary que rellena el elemento de propiedad Application.Resources están disponibles para su recuperación desde cualquier página de la aplicación. Esto resulta de gran utilidad si muchas de las páginas de la aplicación utilizan todas el mismo recurso. Por ejemplo, si tiene un recurso SolidColorBrush que está usando para combinaciones de colores en la interfaz de usuario de su aplicación y usa dicho color en la mayoría de las páginas, se recomienda declarar que la clase SolidColorBrush de Application.Resources sea la que se use para Application.Resources.

Cuando agregue recursos a Application.Resources, agréguelos antes o después de cualquier ResourceDictionary.MergedResources existente. Las reglas de XAML no permiten incluir contenido a ambos lados de una etiqueta de elemento de propiedad. Para obtener más información vea Guía de la sintaxis básica de XAML.

Optimización de carga de recursos en Windows 8.1

A partir de Windows 8.1, hay una optimización de carga de recursos habilitada por el modelo de aplicación y el analizador XAML de Windows en tiempo de ejecución. Para Windows 8, el analizador de XAML cargó recursos desde app.xaml y creó cada uno de ellos como objetos como parte del inicio. Eso no fue muy eficaz si había grandes diccionarios allí. Asimismo, dichos recursos incluían los elementos necesarios por los tres temas y dos de los tres temas ni siquiera estarían activos. A partir de Windows 8.1, el analizador de XAML crea únicamente los recursos cuando se solicitan específicamente. La solicitud puede proceder de otros recursos, o del XAML de la página o la aplicación mientras se carga. Este comportamiento del analizador minimiza el tiempo necesario para leer el diccionario de nivel de aplicación en tiempo de inicio y permite cargar la primera página de la aplicación más rápidamente en la mayoría de los casos. Los recursos necesarios para otros temas actualmente inactivos solo se cargan si el usuario decide que ese tema va a convertirse en el tema activo. En ese momento, los recursos en los que se usó la extensión de marcado de ThemeResource para la solicitud se recalculan según el nuevo tema activo.

Comportamiento de Windows 8

Windows 8 no tenía las optimizaciones descritas anteriormente. El objeto ResourceDictionary de Application.Resources tuvo que finalizar el análisis antes de que cualquier otra página distinta de la pantalla de presentación se cargara en el objeto Window de la aplicación. Por ello, es posible que vea algunas diferencias de intervalos de tiempo al redestinar la aplicación para Windows 8.1. La aplicación debe cargarse más rápidamente, aunque puede que no sea posible aislar esta mejora frente a otros cambios realizados en el código de la aplicación como parte de la redestinación. Algunos de los lugares donde podría aparecer una evidencia de cambios de tiempos debido a la carga de recursos optimizada incluyen cuando el analizador llama a los constructores, para objetos como Application, convertidores, u otras clases personalizadas. Las aplicaciones que se compilaron para Windows 8 pero se ejecutan en Windows 8.1 siguen usando el comportamiento de Windows 8.

Para obtener más información sobre el rendimiento y la factorización de recursos XAML, vea Optimizar carga de XAML.

Ejemplos

Este ejemplo muestra cómo declarar un recurso de aplicación concreto (se crea una instancia de clase común de convertidor que proviene de plantillas de inicio). A continuación agrega un elemento de propiedad Application.MergedDictionaries con elementos ResourceDictionary dentro, cada uno de los cuales hace referencia a un archivo XAML por URI como Source.


<Application.Resources>
    <ResourceDictionary>
      <common:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/> 
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="rd1.xaml" />
        <ResourceDictionary Source="rd2.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Application.Resources>

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

Application
x:Key
Referencias de ResourceDictionary y recurso XAML
StaticResource
Ejemplo de recursos y localización de la aplicación

 

 

Mostrar:
© 2014 Microsoft