Freigeben über


Paket-URIs in WPF

In Windows Presentation Foundation (WPF) werden uniform resource identifiers (URIs) verwendet, um Dateien auf vielfältige Weise zu identifizieren und zu laden, einschließlich der folgenden:

  • Angeben der Benutzeroberfläche, die beim ersten Start einer Anwendung angezeigt werden soll.

  • Bilder werden geladen.

  • Navigation zu Seiten.

  • Laden nicht ausführbarer Datendateien.

Darüber hinaus können URIs verwendet werden, um Dateien aus einer Vielzahl von Speicherorten zu identifizieren und zu laden, einschließlich der folgenden:

  • Die aktuelle Assembly.

  • Eine Assembly, auf die verwiesen wird.

  • Ein zu einer Assembly relativer Speicherort.

  • Die Ursprungswebsite der Anwendung.

Um einen einheitlichen Mechanismus zum Identifizieren und Laden dieser Dateitypen in den Speicherorten bereitzustellen, nutzt WPF die Erweiterbarkeit des Paket-URI-Schemas. In diesem Thema wird ein Überblick über das Schema gegeben. Es wird erklärt, wie Pack-URIs für eine Vielzahl von Szenarien konstruiert werden können und wie absolute und relative URIs sowie die URI-Auflösung funktionieren. Zudem wird erläutert, wie Pack-URIs sowohl aus Markup als auch aus Code verwendet werden können.

Das Paket-URI-Schema

Das Pack-URI-Schema wird von der Open Packaging Conventions (OPC)-Spezifikation verwendet, die ein Modell zum Organisieren und Identifizieren von Inhalten beschreibt. Die wichtigsten Elemente dieses Modells sind Pakete und Teile, bei denen ein -Paket ein logischer Container für einen oder mehrere logische Teileist. Die folgende Abbildung veranschaulicht dieses Konzept.

Diagramm: Pakete und Bestandteile

Um Teile zu identifizieren, nutzt die OPC-Spezifikation die Erweiterbarkeit von RFC 2396 (Uniform Resource Identifiers (URI): Generic Syntax), um das Paket-URI-Schema zu definieren.

Das Schema, das durch einen URI angegeben wird, wird durch sein Präfix definiert; http, ftp und file sind wohlbekannte Beispiele. Das Paket-URI-Schema verwendet "pack" als Schema und enthält zwei Komponenten: Autorität und Pfad. Ein Paket-URI wird im folgenden Format geschrieben.

Paket://Autorität/Pfad

Die Instanz gibt den Typ des Pakets an, in dem ein Teil enthalten ist, während der Pfad den Ort eines Teils innerhalb eines Pakets angibt.

Dieses Konzept wird in der folgenden Abbildung veranschaulicht:

Beziehung zwischen Paket, Autorität und Pfad

Pakete und Teile sind analog zu Anwendungen und Dateien, bei denen eine Anwendung (Paket) eine oder mehrere Dateien (Teile) enthalten kann, einschließlich:

  • Ressourcendateien, die in die lokale Assembly kompiliert werden

  • Ressourcendateien, die in eine Assembly kompiliert werden, auf die verwiesen wird

  • Ressourcendateien, die in eine verweisende Assembly kompiliert werden

  • Inhaltsdateien.

  • Standort der Ursprungsdateien.

Um auf diese Dateitypen zuzugreifen, unterstützt WPF zwei Behörden: application:/// und siteoforigin:///. Die application:/// Autorität identifiziert Anwendungsdatendateien, die zur Kompilierungszeit bekannt sind, einschließlich Ressourcen- und Inhaltsdateien. Durch die Autorität „siteoforigin:///“ werden die Dateien der Ursprungssite identifiziert. Der Umfang jeder Autorität wird in der folgenden Abbildung dargestellt.

Paket-URI-Diagramm

Anmerkung

Die Autoritätskomponente eines Paket-URIs ist ein eingebetteter URI, der auf ein Paket verweist und mit RFC 2396 konform sein muss. Außerdem muss das Zeichen „/“ durch „,“ ersetzt werden, und reservierte Zeichen wie „%“ und „?“ müssen mit Escapezeichen versehen werden. Ausführliche Informationen finden Sie in den Open Packaging-Konventionen.

In den folgenden Abschnitten wird erläutert, wie Sie Paket-URIs mit diesen beiden Autoritäten in Verbindung mit den entsprechenden Pfaden zum Identifizieren von Ressourcen- und Inhaltsdateien sowie Dateien der Ursprungssite erstellen.

Paket-URIs der Ressourcendatei

Ressourcendateien werden als MSBuild-Resource Elemente konfiguriert und in Assemblys kompiliert. WPF unterstützt die Erstellung von Pack-URIs, die verwendet werden können, um Ressourcendateien zu identifizieren, die entweder in der lokalen Assembly kompiliert sind oder in einer Assembly kompiliert wurden, auf die von der lokalen Assembly verwiesen wird.

Ressourcendatei der lokalen Assembly

Der Paket-URI einer Ressourcendatei, die in die lokale Assembly kompiliert wurde, verwendet folgende Autorität und folgenden Pfad:

  • Autorität: application:///.

  • Pfad: Der Name der Ressourcendatei, einschließlich des Pfads, relativ zum Stammverzeichnis des Projektordners der lokalen Assembly.

Das folgende Beispiel zeigt den Paket-URI einer XAML-Ressourcendatei, die im Stammverzeichnis des Projektordners der lokalen Assembly gespeichert ist.

pack://application:,,,/ResourceFile.xaml

Das folgende Beispiel zeigt den Paket-URI für eine XAML-Ressourcendatei, die in einem Unterordner des Projektordners der lokalen Assembly gespeichert ist.

pack://application:,,,/Subfolder/ResourceFile.xaml

Ressourcendatei der Assembly, auf die verwiesen wird

Der Paket-URI einer Ressourcendatei, die in eine Assembly kompiliert wurde, auf die verwiesen wird, verwendet folgende Autorität und folgenden Pfad:

  • Autorität: application:///.

  • Pfad: Der Name einer Ressourcendatei, die in eine Assembly kompiliert wurde, auf die verwiesen wird. Der Pfad muss dem folgenden Format entsprechen:

    AssemblyKurzname{;Version]{;öffentlicherSchlüssel];component/Pfad

    • AssemblyKurzname: Der Kurzname der Assembly, auf die verwiesen wird.

    • ;Version [optional]: Die Version der Assembly, auf die verwiesen wird und die die Ressourcendatei enthält. Wird verwendet, wenn mindestens zwei Assemblys geladen werden, auf die mit demselben Kurznamen verwiesen wird.

    • ;PublicKey [optional]: Der öffentliche Schlüssel, der zum Signieren der Assembly verwendet wird, auf die verwiesen wird. Wird verwendet, wenn mindestens zwei Assemblys geladen werden, auf die mit demselben Kurznamen verwiesen wird.

    • ;component: Gibt an, dass der Verweis auf die Assembly von der lokalen Assembly erfolgt.

    • /Pfad: Der Name der Ressourcendatei, einschließlich des Pfads, relativ zum Stammverzeichnis des Projektordners der Assembly, auf die verwiesen wird.

Das folgende Beispiel zeigt den Paket-URI einer XAML-Ressourcendatei, die im Stammverzeichnis des Projektordners der Assembly gespeichert ist, auf die verwiesen wird.

pack://application:,,,/ReferencedAssembly;component/ResourceFile.xaml

Das folgende Beispiel zeigt den Paket-URI für eine XAML-Ressourcendatei, die in einem Unterordner des Projektordners der Assembly gespeichert ist, auf die verwiesen wird.

pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml

Das folgende Beispiel zeigt den Paket-URI für eine XAML-Ressourcendatei, die im Stammverzeichnis des Projektordners einer versionsspezifischen Assembly gespeichert ist, auf die verwiesen wird.

pack://application:,,,/ReferencedAssembly;v1.0.0.1;component/ResourceFile.xaml

Beachten Sie, dass die Syntax des Paket-URI der Ressourcendateien einer Assembly, auf die verwiesen wird, nur mit der Autorität „application:///“ verwendet werden kann. In WPF wird beispielsweise Folgendes nicht unterstützt.

pack://siteoforigin:,,,/SomeAssembly;component/ResourceFile.xaml

Paket-URIs der Inhaltsdatei

Der Paket-URI einer Inhaltsdatei verwendet folgende Autorität und folgenden Pfad:

  • Autorität: application:///.

  • Pfad: Der Name der Inhaltsdatei, einschließlich des Pfads, relativ zum Speicherort der ausführbaren Hauptassembly der Anwendung im Dateisystem.

Das folgende Beispiel zeigt den Pack-URI für eine XAML-Inhaltsdatei, die sich im selben Ordner wie die ausführbare Assembly befindet.

pack://application:,,,/ContentFile.xaml

Das folgende Beispiel zeigt den Paket-URI einer XAML-Inhaltsdatei, die in einem Unterordner gespeichert ist, der relativ zur ausführbaren Assembly der Anwendung ist.

pack://application:,,,/Subfolder/ContentFile.xaml

Anmerkung

Eine Navigation zu HTML-Inhaltsdateien ist nicht möglich. Das URI-Schema unterstützt nur die Navigation zu HTML-Dateien, die sich auf der Ursprungswebsite befinden.

Paket-URIs der Ursprungssite

Der Paket-URI einer Datei der Ursprungssite verwendet folgende Autorität und folgenden Pfad:

  • Autorität: siteoforigin:///.

  • Pfad: Der Name der Datei der Ursprungssite, einschließlich des Pfads, relativ zum Speicherort, von dem die ausführbare Assembly gestartet wurde.

Das folgende Beispiel zeigt den Paket-URI einer XAML-Datei der Ursprungssite, die sich an dem Speicherort befindet, von dem die ausführbare Assembly gestartet wird.

pack://siteoforigin:,,,/SiteOfOriginFile.xaml

Das folgende Beispiel zeigt den Paket-URI für eine XAML-Datei der Ursprungssite, die in einem Unterordner gespeichert ist, der relativ zu dem Speicherort ist, von dem die ausführbare Assembly der Anwendung gestartet wird.

pack://siteoforigin:,,,/Subfolder/SiteOfOriginFile.xaml

Seitendateien

XAML-Dateien, die als MSBuild-Page Elemente konfiguriert sind, werden auf die gleiche Weise wie Ressourcendateien in Assemblys kompiliert. Daher können Page-Elemente von MSBuild mithilfe von Paket-URIs für Ressourcendateien identifiziert werden.

Die Typen von XAML-Dateien, die häufig als MSBuild-Page-Elemente konfiguriert sind, weisen eines der folgenden Elemente als Stammelement auf:

Absolute und relative Paket-URIs

Ein vollqualifizierter Paket-URI beinhaltet Schema, Autorität und Pfad und wird als absoluter Paket-URI bezeichnet. XAML-Elemente ermöglichen normalerweise das Festlegen entsprechender Attribute mit einem relativen Paket-URI, der nur den Pfad enthält. Dies erleichtert Entwicklern die Arbeit.

Betrachten Sie beispielsweise den folgenden absoluten Paket-URI für eine Ressourcendatei in der lokalen Assembly.

pack://application:,,,/ResourceFile.xaml

Der relative Paket-URI, der auf diese Ressourcendatei verweist, würde folgendermaßen lauten:

/ResourceFile.xaml

Anmerkung

Da Dateien der Ursprungssite nicht mit Assemblys verknüpft sind, kann auf sie nur mit absoluten Paket-URIs verwiesen werden.

Standardmäßig wird ein relativer Paket-URI als relativ zum Speicherort des Markups oder Codes betrachtet, in dem der Verweis enthalten ist. Wird ein vorangestellter umgekehrter Schrägstrich verwendet, wird der Verweis mit dem relativen Paket-URI jedoch als relativ zum Stammverzeichnis der Anwendung angesehen. Betrachten Sie beispielsweise die folgende Projektstruktur.

App.xaml

Page2.xaml

\SubFolder

+ Page1.xaml

+ Page2.xaml

Wenn „Page1.xaml“ einen URI enthält, der auf „Root\SubFolder\Page2.xaml“ verweist, kann der Verweis den folgenden relativen Paket-URI verwenden.

Page2.xaml

Wenn „Page1.xaml“ einen URI enthält, der auf „Root\Page2.xaml“ verweist, kann der Verweis den folgenden relativen Paket-URI verwenden.

/Page2.xaml

Auflösung von Paket-URIs

Das Format des Paket-URIs ermöglicht es, dass Paket-URIs verschiedener Dateitypen gleich aussehen. Ein Beispiel ist z. B. der folgende absolute Paket-URI.

pack://application:,,,/ResourceOrContentFile.xaml

Dieser absolute Pack-URI kann entweder auf eine Ressourcendatei in der lokalen Assembly oder auf eine Inhaltsdatei verweisen. Dasselbe gilt auch für folgenden relativen URI.

/ResourceOrContentFile.xaml

Um den Dateityp zu bestimmen, auf den ein Pack-URI verweist, löst WPF URIs für Ressourcendateien in lokalen Assemblys und Inhaltsdateien mithilfe der folgenden Heuristiken auf:

  1. Die Assemblymetadaten werden auf ein AssemblyAssociatedContentFileAttribute-Attribut geprüft, das mit dem Paket-URI übereinstimmt.

  2. Wenn das AssemblyAssociatedContentFileAttribute-Attribut gefunden wird, bezieht sich der Pfad des Pack-URI auf eine Inhaltsdatei.

  3. Wird das AssemblyAssociatedContentFileAttribute-Attribut nicht gefunden, werden die festgelegten Ressourcendateien geprüft, die in die lokale Assembly kompiliert wurden.

  4. Wenn eine Ressourcendatei gefunden wird, die dem Pfad des Pack-URI entspricht, bezieht sich der Pfad des Pack-URI auf eine Ressourcendatei.

  5. Wenn die Ressource nicht gefunden wird, ist der intern erstellte Uri ungültig.

Die URI-Auflösung gilt nicht für URIs, die auf folgende Dateien verweisen:

  • Inhaltsdateien in referenzierten Assemblys: Diese Dateitypen werden von WPF nicht unterstützt.

  • Eingebettete Dateien in Referenzassemblies: URIs, die sie identifizieren, sind eindeutig, da sie sowohl den Namen der Referenzassemblies als auch das Suffix ;component enthalten.

  • Standort der Ursprungsdateien: URIs, die sie identifizieren, sind eindeutig, weil sie die einzigen Dateien sind, die durch Pack-URIs mit der Autorität siteoforigin:/// identifiziert werden können.

Eine Vereinfachung, die die Pack-URI-Auflösung ermöglicht, besteht darin, dass der Code ein gewisses Maß an Unabhängigkeit von den Speicherorten der Ressourcen- und Inhaltsdateien erhält. Wenn Sie beispielsweise eine Ressourcendatei in der lokalen Assembly haben, die neu konfiguriert ist, um eine Inhaltsdatei zu sein, bleibt der Pack-URI für die Ressource identisch, ebenso wie der Code, der den Pack-URI verwendet.

Programmieren mit Paket-URIs

Viele WPF-Klassen implementieren Eigenschaften, die mit Paket-URIs festgelegt werden können, einschließlich:

Diese Eigenschaften können sowohl aus Markup als auch aus Code festgelegt werden. In diesem Abschnitt werden die grundlegenden Konstruktionen für beide und dann Beispiele für allgemeine Szenarien veranschaulicht.

Verwenden von Paket-URIs im Markup

Ein Paket-URI wird im Markup durch Festlegen des Elements eines Attributs mit dem Paket-URI angegeben. Zum Beispiel:

<element attribute="pack://application:,,,/File.xaml" />

In Tabelle 1 sind die verschiedenen absoluten Pack-URIs dargestellt, die Sie im Markup angeben können.

Tabelle 1: Absolute Paket-URIs im Markup

Datei Absoluter Paket-URI
Ressourcendatei – lokale Assembly "pack://application:,,,/ResourceFile.xaml"
Ressourcendatei im Unterordner – lokale Assembly "pack://application:,,,/Subfolder/ResourceFile.xaml"
Ressourcendatei – Assembly, auf die verwiesen wird "pack://application:,,,/ReferencedAssembly;component/ResourceFile.xaml"
Ressourcendatei im Unterordner der Assembly, auf die verwiesen wird "pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml"
Ressourcendatei in Assembly mit Versionsangabe, auf die verwiesen wird "pack://application:,,,/ReferencedAssembly;v1.0.0.0;component/ResourceFile.xaml"
Inhaltsdatei "pack://application:,,,/ContentFile.xaml"
Inhaltsdatei im Unterordner "pack://application:,,,/Subfolder/ContentFile.xaml"
Website der Ursprungsdatei "pack://siteoforigin:,,,/SOOFile.xaml"
Datei der Ursprungssite im Unterordner "pack://siteoforigin:,,,/Subfolder/SOOFile.xaml"

In Tabelle 2 sehen Sie die verschiedenen relativen Paket-URIs, die Sie im Markup angeben können.

Tabelle 2: Relative Paket-URIs im Markup

Datei Relativer Paket-URI
Ressourcendatei in lokaler Assembly "/ResourceFile.xaml"
Ressourcendatei im Unterordner der lokalen Assembly "/Subfolder/ResourceFile.xaml"
Ressourcendatei in Assembly, auf die verwiesen wird "/ReferencedAssembly;component/ResourceFile.xaml"
Ressourcendatei im Unterordner der Assembly, auf die verwiesen wird "/ReferencedAssembly;component/Subfolder/ResourceFile.xaml"
Inhaltsdatei "/ContentFile.xaml"
Inhaltsdatei im Unterordner "/Subfolder/ContentFile.xaml"

Verwenden von Paket-URIs im Code

Sie geben einen Paket-URI im Code an, indem Sie die Uri-Klasse instanziieren und den Paket-URI als Parameter an den Konstruktor übergeben. Dies wird im folgenden Beispiel veranschaulicht.

Uri uri = new Uri("pack://application:,,,/File.xaml");

Standardmäßig sieht die Uri-Klasse Paket-URIs als absolut an. Daher wird eine Ausnahme ausgelöst, wenn eine Instanz der Uri-Klasse mit einem relativen Paket-URI erstellt wird.

Uri uri = new Uri("/File.xaml");

Glücklicherweise akzeptiert die Uri(String, UriKind)-Überladung des Uri-Klassenkonstruktors einen Parameter des Typs UriKind, mit dem Sie angeben können, ob ein Paket-URI absolut oder relativ ist.

// Absolute URI (default)
Uri absoluteUri = new Uri("pack://application:,,,/File.xaml", UriKind.Absolute);
// Relative URI
Uri relativeUri = new Uri("/File.xaml",
                        UriKind.Relative);

Sie sollten nur Absolute oder Relative angeben, wenn Sie sicher sind, dass der bereitgestellte Pack-URI das eine oder das andere ist. Wenn Sie nicht wissen, welcher Typ von Paket-URI verwendet wird, beispielsweise wenn Paket-URIs zur Laufzeit angegeben werden, verwenden Sie stattdessen RelativeOrAbsolute.

// Relative or Absolute URI provided by user via a text box
TextBox userProvidedUriTextBox = new TextBox();
Uri uri = new Uri(userProvidedUriTextBox.Text, UriKind.RelativeOrAbsolute);

In Tabelle 3 sehen Sie die verschiedenen relativen Paket-URIs, die Sie im Code mit System.Uri angeben können.

Tabelle 3: Absolute Paket-URIs im Code

Datei Absoluter Paket-URI
Ressourcendatei – lokale Assembly Uri uri = new Uri("pack://application:,,,/ResourceFile.xaml", UriKind.Absolute);
Ressourcendatei im Unterordner – lokale Assembly Uri uri = new Uri("pack://application:,,,/Subfolder/ResourceFile.xaml", UriKind.Absolute);
Ressourcendatei – Assembly, auf die verwiesen wird Uri uri = new Uri("pack://application:,,,/ReferencedAssembly;component/ResourceFile.xaml", UriKind.Absolute);
Ressourcendatei im Unterordner der Assembly, auf die verwiesen wird Uri uri = new Uri("pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml", UriKind.Absolute);
Ressourcendatei in Assembly mit Versionsangabe, auf die verwiesen wird Uri uri = new Uri("pack://application:,,,/ReferencedAssembly;v1.0.0.0;component/ResourceFile.xaml", UriKind.Absolute);
Inhaltsdatei Uri uri = new Uri("pack://application:,,,/ContentFile.xaml", UriKind.Absolute);
Inhaltsdatei im Unterordner Uri uri = new Uri("pack://application:,,,/Subfolder/ContentFile.xaml", UriKind.Absolute);
Website der Ursprungsdatei Uri uri = new Uri("pack://siteoforigin:,,,/SOOFile.xaml", UriKind.Absolute);
Datei der Ursprungssite im Unterordner Uri uri = new Uri("pack://siteoforigin:,,,/Subfolder/SOOFile.xaml", UriKind.Absolute);

In Tabelle 4 sehen Sie die verschiedenen relativen Paket-URIs, die Sie im Code mit System.Uri angeben können.

Tabelle 4: Relative Paket-URIs im Code

Datei Relativer Paket-URI
Ressourcendatei – lokale Assembly Uri uri = new Uri("/ResourceFile.xaml", UriKind.Relative);
Ressourcendatei im Unterordner – lokale Assembly Uri uri = new Uri("/Subfolder/ResourceFile.xaml", UriKind.Relative);
Ressourcendatei – Assembly, auf die verwiesen wird Uri uri = new Uri("/ReferencedAssembly;component/ResourceFile.xaml", UriKind.Relative);
Ressourcendatei im Unterordner – Assembly, auf die verwiesen wird Uri uri = new Uri("/ReferencedAssembly;component/Subfolder/ResourceFile.xaml", UriKind.Relative);
Inhaltsdatei Uri uri = new Uri("/ContentFile.xaml", UriKind.Relative);
Inhaltsdatei im Unterordner Uri uri = new Uri("/Subfolder/ContentFile.xaml", UriKind.Relative);

Häufige Szenarios mit Paket-URIs

In den vorherigen Abschnitten wurde erläutert, wie Sie Pack-URIs erstellen, um Ressourcen-, Inhalts- und Ursprungsdateien zu identifizieren. In WPF werden diese Konstruktionen auf unterschiedliche Weise verwendet, und die folgenden Abschnitte umfassen mehrere allgemeine Verwendungen.

Angeben der Benutzeroberfläche, die beim Starten einer Anwendung angezeigt werden soll

StartupUri gibt die erste Benutzeroberfläche an, die angezeigt wird, wenn eine WPF-Anwendung gestartet wird. Bei eigenständigen Anwendungen kann die Benutzeroberfläche ein Fenster sein, wie im folgenden Beispiel gezeigt.

<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    StartupUri="MainWindow.xaml" />

Eigenständige Anwendungen und XAML-Browseranwendungen (XBAPs) können auch eine Seite als erste Benutzeroberfläche angeben, wie im folgenden Beispiel gezeigt.

<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    StartupUri="HomePage.xaml" />

Wenn die Anwendung eine eigenständige Anwendung ist und eine Seite mit StartupUri angegeben wird, öffnet WPF ein NavigationWindow-Element, um die Seite zu hosten. Für XBAPs wird die Seite im Host-Browser angezeigt.

Das folgende Beispiel zeigt, wie Sie zu einer Seite navigieren.

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  WindowTitle="Page With Hyperlink"
  WindowWidth="250"
  WindowHeight="250">
<Hyperlink NavigateUri="UriOfPageToNavigateTo.xaml">
  Navigate to Another Page
</Hyperlink>
</Page>

Weitere Informationen zu den verschiedenen Navigationsmöglichkeiten in WPF finden Sie unter Navigation Overview.

Angeben eines Fenstersymbols

Das folgende Beispiel zeigt, wie Sie einen URI verwenden, um das Symbol eines Fensters anzugeben.

<Window
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="SDKSample.MainWindow"
    Icon="WPFIcon1.ico">
</Window>

Weitere Informationen finden Sie unter Icon.

Laden von Bild-, Audio- und Videodateien

WPF ermöglicht Es Anwendungen, eine Vielzahl von Medientypen zu verwenden, die alle mit Pack-URIs identifiziert und geladen werden können, wie in den folgenden Beispielen gezeigt.

<MediaElement Stretch="Fill" LoadedBehavior="Play" Source="pack://siteoforigin:,,,/Media/bee.wmv" />
<MediaElement Stretch="Fill" LoadedBehavior="Play" Source="pack://siteoforigin:,,,/Media/ringin.wav" />
<Image Source="Images/Watermark.png" />

Weitere Informationen zum Arbeiten mit Medieninhalten finden Sie unter Grafiken und Multimedia.

Laden eines Ressourcenverzeichnisses aus der Ursprungssite

Ressourcenwörterbücher (ResourceDictionary) können verwendet werden, um Anwendungsthemen zu unterstützen. Eine Möglichkeit, Designs zu erstellen und zu verwalten, besteht darin, mehrere Designs als Ressourcenverzeichnisse zu erstellen, die in der Ursprungssite einer Anwendung gespeichert sind. Dadurch können Designs hinzugefügt und aktualisiert werden, ohne dass eine Anwendung erneut kompiliert und bereitgestellt werden muss. Die Ressourcenwörterbücher können mithilfe von Paket-URIs identifiziert und geladen werden, wie im folgenden Beispiel gezeigt.

<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    StartupUri="HomePage.xaml">
  <Application.Resources>
    <ResourceDictionary Source="pack://siteoforigin:,,,/PageTheme.xaml" />
  </Application.Resources>
</Application>

Eine Übersicht über Designs in WPF finden Sie unter Erstellen von Formaten und Vorlagen.

Weitere Informationen