Windows Dev Center

Language: HTML | XAML

So wird’s gemacht: Laden von Dateiressourcen (XAML)

Hier erfahren Sie, wie Sie Dateiressourcen von verschiedenen Speicherorten laden.

Sie können auf Dateiressourcen in App-Dateien, die Sie als Teil des App-Pakets bereitstellen oder die Sie als Teil eines Komponenten- oder Frameworkpakets hinzufügen, in App-Daten oder im Web zugreifen. Sie können im Markup (XAML-Attribute oder Benachrichtigungs-XML) oder im Code (z. B. Windows.Web.Http oder storage file APIs) auf diese Dateien verweisen. Die folgenden Beispiele zeigen die Dateiressourcen in bestimmten Kontexten, die meisten von ihnen können aber auch in vielen anderen Kontexten verwendet werden.

Web

Um in XAML auf Dateien im Web zuzugreifen, können Sie standardmäßige absolute HTTP-URIs verwenden.


<Image Source="http://www.contoso.com/images/logo.png" alt="Logo" />

App-Paket

Für den Zugriff auf Dateien im App-Paket können Sie mit einem direkten oder logischen Dateipfad auf die Ressource verweisen. Dies gilt auch dann, wenn für die Dateien mehrere Sprach-, Skalierungs- und Kontrastversionen oder andere Varianten vorhanden sind. Eine entsprechende Einführung finden Sie unter Schnellstart: Verwenden von Datei- oder Bildressourcen.

Beispielsweise laden Sie

Images/en-US/homeregion-USA/logo.scale-100_contrast-white.png

durch einen Verweis auf

Images/logo.png

Für den Zugriff auf Dateien relativ zur aktuellen XAML-Seite können Sie relative URIs verwenden.


<Image Source="images/logo.png" />

Für den Zugriff auf Dateien relativ zum Stamm des Pakets über eine XAML-Seite können Sie absolute Pfad-URIs (URIs, die mit einem "/" beginnen) verwenden.

<Image Source="/images/logo.png" />

Um in Code, in dem keine abgeleitete Stammzertifizierungsstelle vorhanden ist, auf im Anwendungspaket gespeicherte Dateien zuzugreifen, geben Sie das ms-appx:-Schema an.



var uri = new System.Uri("ms-appx:///images/logo.png");
var file = await Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(uri);

Da Windows-Runtime-APIs keine Unterstützung für URIs vom Typ UriKind.Relative bieten, verwenden Sie in der Regel die Signatur, von der UriKind abgeleitet wird, und stellen sicher, dass Sie einen gültigen absoluten URI einschließlich Schema und Autorität angegeben haben.

App-Daten

Verwenden Sie für den Zugriff auf Dateien, die in den App-Daten gespeichert sind, das ms-appdata:-Schema. App-Daten können in einem Ordner local, roaming oder temp gespeichert werden.

So greifen Sie auf Dateien im Ordner local zu

<Image Source="ms-appdata:///local/images/logo.png" />

So greifen Sie auf Dateien im Roamingordner zu:

<Image Source="ms-appdata:///roaming/images/logo.png" />

So greifen Sie auf Dateien im temporären Ordner zu:

<Image Source="ms-appdata:///temp/images/logo.png" />

Die storage file APIs können auf die gleiche Weise auf Dateien im App-Paket zugreifen:



var uri = new System.Uri("ms-appdata:///local/images/logo.png");
var file = await Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(uri);

Ereignisse und Kontextänderungen

Apps werden u. U. ausgeführt, wenn im System Änderungen vorgenommen werden, z. B. wenn Benutzer hohen Kontrast einschalten. Dies führt dazu, dass die App einen anderen Satz von Qualifizierern verwendet. Durch verschiedene Systemänderungen werden Ereignisse für das ResourceContext-Objekt aufgerufen. Dabei werden die Ressourcen abhängig von den Implementierungen der von der App verwendeten Windows-Runtime-Klassen u. U. neu ausgewertet.

XAML verfügt außerdem über ein verwandtes ThemeResource-Konzept. Dies ist eine andere Ressourcenmetapher, bei der UI-bezogene Werttypen, wie Pinsel, Text und Messungen, die in XAML als gemeinsam nutzbar definiert werden können, automatisch den Wert wechseln und neu ausgewertet werden, wenn der Benutzer zwischen Designs wechselt. Weitere Informationen finden Sie unter ResourceDictionary- und XAML-Ressourcenverweise.

Verwandte Themen

So wird's gemacht: Laden von Zeichenfolgenressourcen
Definieren von App-Ressourcen

 

 

Anzeigen:
© 2015 Microsoft