Application.Resources Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene una colección de recursos con ámbito de aplicación, como estilos, plantillas y pinceles.
ResourceDictionary Resources();
void Resources(ResourceDictionary value);
public ResourceDictionary Resources { get; set; }
var resourceDictionary = application.resources;
application.resources = resourceDictionary;
Public Property Resources As ResourceDictionary
<Application>
<Application.Resources>
oneOrMoreResourceElements
</Application.Resources>
</Application>
Valor de propiedad
Objeto ResourceDictionary que contiene cero o más recursos con ámbito de aplicación.
Ejemplos
En este ejemplo se muestra cómo declarar un recurso específico de la aplicación (este crea una instancia de clase de convertidor común que procede de las 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 URIcomo source.
<Application.Resources>
<ResourceDictionary>
<common:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="rd1.xaml" />
<ResourceDictionary Source="rd2.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Comentarios
El modelo de diccionario de recursos de la Windows Runtime 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, consulta Referencias a recursos ResourceDictionary y XAML.
Los recursos que defina en ResourceDictionary que rellena el elemento de Application.Resources
propiedad están disponibles para su recuperación desde cualquier página de la aplicación. Esto es ventajoso si muchas de las páginas de la aplicación usan el mismo recurso. Por ejemplo, si tienes un recurso SolidColorBrush que usas para combinaciones de colores en la interfaz de usuario de la aplicación y ese color se usa en la mayoría de las páginas, tiene sentido declarar que SolidColorBrush en el Application.Resources
usado para Application.Resources
.
Al agregar recursos a Application.Resources
, agréguelos antes o después de cualquier existente ResourceDictionary.MergedResources
. Las reglas de XAML no permiten colocar contenido en ambos lados de una etiqueta de elemento de propiedad. Para obtener más información, consulta la guía de sintaxis XAML.
Notas de las versiones anteriores
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 Runtime. Para Windows 8, el analizador XAML cargó los recursos de app.xaml y creó cada uno de ellos como objetos como parte del inicio. Eso no era muy eficaz si había diccionarios grandes allí. Además, esos recursos incluían los elementos que necesitaban los tres temas y dos de los tres temas ni siquiera estarían activos. A partir de Windows 8.1, el analizador XAML solo crea los recursos cuando se solicitan específicamente. La solicitud puede provenir de otros recursos o de XAML de aplicación o página a medida que se carga cada uno. Este comportamiento del analizador minimiza el tiempo necesario para leer el diccionario de nivel de aplicación en tiempo de inicio y permite que la primera página de la aplicación se cargue más rápido en la mayoría de los casos. Los recursos necesarios para otros temas inactivos actualmente solo se cargan si el usuario elige ese tema para convertirse en el tema activo. En ese momento, cualquier recurso en el que se usó la extensión de marcado {ThemeResource} para la solicitud se recalcula en función del tema recién activo.
Comportamiento de Windows 8
Windows 8 no tenía las optimizaciones descritas anteriormente. ResourceDictionary para Application.Resources
tuvo que finalizar el análisis antes de que cualquier página que no sea la pantalla de presentación pudiera cargarse en la ventana de la aplicación. Debido a esto, es posible que vea algunas diferencias en el tiempo al volver a configurar la aplicación para Windows 8.1. La aplicación debe cargarse más rápido, pero es posible que no sea posible aislar esta mejora frente a otros cambios realizados en el código de la aplicación como parte del destino. Algunos de los lugares donde es posible que vea evidencia de cambios de tiempo debido a la carga de recursos optimizados incluyen cuando el analizador llama a los constructores, para objetos como objetos Application , convertidores u otras clases personalizadas. Las aplicaciones compiladas para Windows 8 que se ejecuten 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, consulta Optimizar el marcado XAML.