Freigeben über


Application.Resources Eigenschaft

Definition

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.Resourceszu deklarieren.

Wenn Sie Ressourcen zu Application.Resourceshinzufügen, fügen Sie sie entweder vor oder nach einer vorhandenen ResourceDictionary.MergedResourceshinzu. 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.

Gilt für:

Weitere Informationen