Application.Resources Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft eine Auflistung von Anwendungsressourcen ab, z. B. Stile, Vorlagen und Pinsel.
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>
Eigenschaftswert
Ein ResourceDictionary-Objekt , das keine oder mehr Anwendungsressourcen enthält.
Beispiele
In diesem Beispiel wird gezeigt, wie Sie eine app-spezifische Ressource deklarieren (mit dieser ressource wird eine allgemeine Konverterklasse instance erstellt, die aus dem Starten von Vorlagen stammt). Anschließend wird ein Application.MergedDictionaries-Eigenschaftselement mit ResourceDictionary-Elementen hinzugefügt, die jeweils auf eine XAML-Datei nach URI als Quelle verweisen.
<Application.Resources>
<ResourceDictionary>
<common:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="rd1.xaml" />
<ResourceDictionary Source="rd2.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Hinweise
Das Ressourcenwörterbuchmodell im Windows-Runtime unterstützt viele xaml-Ressourcenkonzepte, mit denen Sie möglicherweise vertraut sind, wenn Sie Anwendungen mit Windows Presentation Foundation (WPF) oder Microsoft Silverlight erstellt haben. Weitere Informationen finden Sie unter ResourceDictionary- und XAML-Ressourcenverweise.
Die Ressourcen, die Sie im ResourceDictionary definieren, das das Application.Resources
Eigenschaftselement ausfüllt, stehen für den Abruf von jeder Beliebigen Seite Ihrer App zur Verfügung. Dies ist von Vorteil, wenn viele Seiten Ihrer App dieselbe Ressource verwenden. Wenn Sie beispielsweise über eine SolidColorBrush-Ressource verfügen, die Sie für Farbschemas auf der Benutzeroberfläche Ihrer App verwenden, und diese Farbe auf den meisten Ihrer Seiten verwendet wird, ist es sinnvoll, diese SolidColorBrush in der Application.Resources
für verwendet Application.Resources
zu deklarieren.
Wenn Sie Ressourcen zu Application.Resources
hinzufügen, fügen Sie sie entweder vor oder nach einer vorhandenen ResourceDictionary.MergedResources
hinzu. Die Regeln von XAML ermöglichen es Ihnen nicht, Inhalte auf beiden Seiten eines Eigenschaftselementtags zu platzieren. Weitere Informationen finden Sie unter XAML-Syntaxleitfaden.
Hinweise zu früheren Versionen
Optimierung des Ladens von Ressourcen in Windows 8.1
Ab Windows 8.1 gibt es eine Optimierung zum Laden von Ressourcen, die durch das App-Modell und den Windows-Runtime XAML-Parser aktiviert wird. Für Windows 8 hat der XAML-Parser Ressourcen aus app.xaml geladen und als Teil des Startvorgangs als Objekte erstellt. Das war nicht sehr effizient, wenn es dort große Wörterbücher gab. Außerdem enthielten diese Ressourcen die Elemente, die von allen drei Designs benötigt wurden, und zwei der drei Designs wären nicht einmal aktiv. Ab Windows 8.1 erstellt der XAML-Parser die Ressourcen nur, wenn sie speziell angefordert werden. Die Anforderung kann von anderen Ressourcen oder von einer App oder einem SEITEN-XAML stammen, wenn die einzelnen Elemente geladen werden. Dieses Parserverhalten minimiert die Zeit, die zum Lesen des Wörterbuchs auf App-Ebene zum Startzeit benötigt wird, und ermöglicht es, dass die erste App-Seite in den meisten Fällen schneller geladen wird. Ressourcen, die von anderen derzeit inaktiven Designs benötigt werden, werden nur geladen, wenn dieses Design vom Benutzer als aktives Design ausgewählt wird. Zu diesem Zeitpunkt wird jede Ressource, in der die {ThemeResource}-Markuperweiterung für die Anforderung verwendet wurde, basierend auf dem neu aktiven Design neu berechnet.
Windows 8-Verhaltensweise
Windows 8 verfügten nicht über die oben beschriebenen Optimierungen. Das ResourceDictionary für Application.Resources
musste die Analyse abschließen, bevor eine andere Seite als der Begrüßungsbildschirm in das Fenster der App geladen werden konnte. Aus diesem Grund sehen Sie möglicherweise einige Unterschiede in der Zeitsteuerung, wenn Sie Ihre App für Windows 8.1. Die App sollte schneller geladen werden, es ist jedoch möglicherweise nicht möglich, diese Verbesserung im Vergleich zu anderen Änderungen zu isolieren, die Sie im Rahmen der Neuzuweisung an Ihrem App-Code vorgenommen haben. Zu den Stellen, an denen Möglicherweise Hinweise auf Zeitänderungen aufgrund optimierter Ressourcenladevorgänge angezeigt werden, gehören, wenn die Konstruktoren vom Parser für Objekte wie Application-Objekte , Konverter oder andere benutzerdefinierte Klassen aufgerufen werden. Apps, die für Windows 8 kompiliert wurden, aber unter Windows 8.1 ausgeführt werden, weisen weiterhin das Windows 8-Verhalten auf.
Weitere Informationen zu Leistung und XAML-Ressourcenfaktoring finden Sie unter Optimieren Ihres XAML-Markups.