Application.Resources Property

Ruft eine Auflistung von anwendungsspezifischen Ressourcen ab, z. B. Formate, Vorlagen und Pinsel.

Syntax


public ResourceDictionary Resources { get; set; }


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

XAML Values

oneOrMoreResourceElements

Mindestens ein Objektelement, das jeweils eine Ressource erstellt und definiert. Jedes Eigenschaftselement einer Ressource in einem ResourceDictionary muss über einen eindeutigen Wert für x:Key verfügen, der als eindeutiger Schlüssel verwendet wird, wenn Werte aus dem ResourceDictionary abgerufen werden.

Eigenschaftswert

Typ: ResourceDictionary

Ein ResourceDictionary-Objekt, das NULL oder mehr anwendungsspezifische Ressourcen enthält.

Hinweise

Das Ressourcenverzeichnismodell in der Windows-Runtime unterstützt viele der XAML-Ressourcenkonzepte, die Sie bereits kennen, 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-Eigenschaftenelement füllt, sind für den Abruf von jeder Seite Ihrer App verfügbar. Diese Vorgehensweise ist empfehlenswert, wenn viele Seiten der App dieselbe Ressource verwenden. Wenn Sie über eine SolidColorBrush-Ressource verfügen, die Sie für Farbschemas in der Benutzeroberfläche der App verwenden und diese Farbe auf den meisten Seiten verwendet wird, ist es sinnvoll, dieses SolidColorBrush in Application.Resources zu deklarieren, das für Application.Resources verwendet wird.

Wenn Sie Ressourcen zu Application.Resources hinzufügen, fügen Sie sie entweder vor oder nach vorhandenen ResourceDictionary.MergedResources hinzu. Die Regeln von XAML erlauben Ihnen nicht, Inhalt auf beide Seiten eines Eigenschaftenelementtag zu setzen. Weitere Informationen finden Sie unter Anleitung zur grundlegenden XAML-Syntax.

Ressourcenladeoptimierung in Windows 8.1

Ab Windows 8.1 gibt es eine Ressourcenladenoptimierung, die vom App-Modell und Windows Runtime XAML-Parser aktiviert ist. Bei Windows 8 hat der XAML-Parser Ressourcen von app.xaml geladen und jeden davon als Objekte als Teil des Starts erstellt. Das ist bei großen Wörterbüchern nicht sehr effizient. Darüber hinaus enthielten die Ressourcen die Elemente, die von allen drei Motiven benötigt wurden. Zwei der drei Motive wären sogar nicht aktiv. Ab Windows 8.1 erstellt der XAML-Parser nur die Ressourcen, wenn sie ausdrücklich angefordert werden. Die Anforderung kann von anderen Ressourcen oder vom XAML-Code einer App oder einer Seite stammen, wenn diese geladen wird. Dieses Parserverhalten minimiert die benötigte Zeit zum Lesen des Wörterbuchs der App-Ebene während des Starts und ermöglicht in den meisten Fällen ein schnelleres Laden der ersten App-Seite. Die Ressourcen, die von einem anderen derzeit nicht aktiven Design benötigt werden, werden nur geladen, wenn dieses Design vom Benutzer als zu aktivierendes Design ausgewählt wird. Zu diesem Zeitpunkt wird jede Ressource, in der ThemeResource-Markuperweiterung für die Anforderung verwendet wurde, auf der Basis des neuerdings aktiven Designs neu berechnet.

Windows 8-Verhalten

Windows 8 verfügte nicht über die Optimierungen, die oben beschrieben sind. Die Analyse von ResourceDictionary für Application.Resources musste erst beendet werden, bevor eine andere Seite als der Begrüßungsbildschirm in das Window-Element der App geladen werden konnte. Deswegen stoßen Sie möglicherweise auf einige Unterschiede bei der zeitlichen Steuerung, wenn Sie der App Windows 8.1 als neue Zielversion zuweisen. Die App sollte schneller geladen werden. Es ist aber unter Umständen nicht möglich, diese Verbesserung von anderen Änderungen zu isolieren, die Sie am App-Code im Rahmen der Neuzuweisung vorgenommen haben. Szenarien, in denen die Konstruktoren vom Parser aufgerufen werden, u. a. für Objekte wie Application-Objekte, Konverter oder andere benutzerdefinierte Klassen, sind einige Bereiche, in denen Sie Änderungen an den zeitlichen Steuerungswerten aufgrund eines optimierten Ladens von Ressourcen erkennen. Apps, die für Windows 8 kompiliert wurden, jedoch unter Windows 8.1 ausgeführt werden, verwenden weiterhin das Windows 8-Verhalten.

Weitere Informationen zur Leistung und zur Verarbeitung von XAML-Ressourcen finden Sie unter Optimieren des XAML-Ladevorgangs.

Beispiele

Dieses Beispiel zeigt, wie Sie eine App-spezifische Ressource deklarieren können (diese erstellt eine allgemeine Konverterklasseninstanz, die vom Starten der Vorlagen stammt). Anschließend fügt sie ein Application.MergedDictionaries-Eigenschaftenelement mit ResourceDictionary-Elementen darin hinzu, wobei jedes auf eine XAML-Datei durch URI als Source verweist.


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

Anforderungen

Mindestens unterstützter Client

Windows 8

Mindestens unterstützter Server

Windows Server 2012

Namespace

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadaten

Windows.winmd

Siehe auch

Application
x:Key
ResourceDictionary- und XAML-Ressourcenverweise
StaticResource
Anwendungsressourcen- und Lokalisierungsbeispiel

 

 

Anzeigen:
© 2015 Microsoft