Fichiers de ressources, de contenu et de données d'une application WPFWPF Application Resource, Content, and Data Files

Les applications Microsoft Windows dépendent souvent de fichiers qui contiennent des données non exécutables, telles que des langage XAML (eXtensible Application Markup Language)Extensible Application Markup Language (XAML), des images, des vidéos et de l’audio.Microsoft Windows applications often depend on files that contain non-executable data, such as langage XAML (eXtensible Application Markup Language)Extensible Application Markup Language (XAML), images, video, and audio. Windows Presentation Foundation (WPF) offre une prise en charge spéciale pour la configuration, l’identification et l’utilisation de ces types de fichiers de données, appelés fichiers de données d’application.Windows Presentation Foundation (WPF) offers special support for configuring, identifying, and using these types of data files, which are called application data files. Cette prise en charge repose sur un ensemble spécifique de types de fichier de données d’application, notamment :This support revolves around a specific set of application data file types, including:

  • Fichiers de ressources: fichiers de données compilés dans un assembly WPF exécutable ou bibliothèque.Resource Files: Data files that are compiled into either an executable or library WPF assembly.

  • Fichiers de contenu: fichiers de données autonomes qui ont une association explicite avec un assembly WPF exécutable.Content Files: Standalone data files that have an explicit association with an executable WPF assembly.

  • Fichiers du site d’origine: fichiers de données autonomes qui n’ont aucune association avec un assembly WPF exécutable.Site of Origin Files: Standalone data files that have no association with an executable WPF assembly.

Il existe une distinction importante entre ces trois types de fichier : les fichiers de ressources et les fichiers de contenu sont connus au moment de la génération. En effet, un assembly les connaît explicitement.One important distinction to make between these three types of files is that resource files and content files are known at build time; an assembly has explicit knowledge of them. Toutefois, pour les fichiers de site d’origine, un assembly n’a peut-être aucune connaissance du tout ou une connaissance implicite par le biais d’une référence URI (Uniform Resource Identifier) de Pack ; dans ce dernier cas, il n’y a aucune garantie que le fichier de site d’origine référencé existe réellement.For site of origin files, however, an assembly may have no knowledge of them at all, or implicit knowledge through a pack uniform resource identifier (URI) reference; the case of the latter, there is no guarantee that the referenced site of origin file actually exists.

Pour référencer des fichiers de données d’application, Windows Presentation Foundation (WPF) utilise le schéma d’URI (Uniform Resource Identifier) Pack, qui est décrit en détail dans URI à en- tête pack dans WPF).To reference application data files, Windows Presentation Foundation (WPF) uses the Pack uniform resource identifier (URI) Scheme, which is described in detail in Pack URIs in WPF).

Cette rubrique décrit comment configurer et utiliser des fichiers de données d’application.This topic describes how to configure and use application data files.

Fichiers de ressourcesResource Files

Si un fichier de données d’application doit toujours être disponible pour une application, le seul moyen de garantir cette disponibilité est de le compiler en un assembly exécutable principal d’une application ou en l’un de ses assemblys référencés.If an application data file must always be available to an application, the only way to guarantee availability is to compile it into an application's main executable assembly or one of its referenced assemblies. Ce type de fichier de données d’application est connu sous le nom de fichier de ressources.This type of application data file is known as a resource file.

Vous devez utiliser des fichiers de ressources dans les situations suivantes :You should use resource files when:

  • Vous n’avez pas besoin de mettre à jour le contenu du fichier de ressources une fois qu’il a été compilé en un assembly.You don't need to update the resource file's content after it is compiled into an assembly.

  • Vous souhaitez simplifier la complexité de distribution d’une application en réduisant le nombre des dépendances de fichiers.You want to simplify application distribution complexity by reducing the number of file dependencies.

  • Votre fichier de données d’application doit être localisable (consultez vue d’ensemble de la globalisation et de la localisation WPF).Your application data file needs to be localizable (see WPF Globalization and Localization Overview).

Notes

Les fichiers de ressources décrits dans cette section sont différents des fichiers de ressources décrits dans les ressources XAML et différents des ressources incorporées ou liées décrites dans gérer les ressources d’application (.net).The resource files described in this section are different than the resource files described in XAML Resources and different than the embedded or linked resources described in Manage Application Resources (.NET).

Configuration des fichiers de ressourcesConfiguring Resource Files

Dans WPF, un fichier de ressources est un fichier inclus dans un projet Microsoft Build Engine (MSBuild) en tant qu’élément de Resource.In WPF, a resource file is a file that is included in an Microsoft build engine (MSBuild) project as a Resource item.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ... >  
  ...  
  <ItemGroup>  
    <Resource Include="ResourceFile.xaml" />  
  </ItemGroup>  
  ...  
</Project>  

Notes

Dans Visual Studio, vous créez un fichier de ressources en ajoutant un fichier à un projet et en définissant sa Build Action sur Resource.In Visual Studio, you create a resource file by adding a file to a project and setting its Build Action to Resource.

Lorsque le projet est généré, MSBuild compile la ressource dans l’assembly.When the project is built, MSBuild compiles the resource into the assembly.

Utilisation des fichiers de ressourcesUsing Resource Files

Pour charger un fichier de ressources, vous pouvez appeler la méthode GetResourceStream de la classe Application, en passant un URI à en-tête pack qui identifie le fichier de ressources souhaité.To load a resource file, you can call the GetResourceStream method of the Application class, passing a pack URI that identifies the desired resource file. GetResourceStream retourne un objet StreamResourceInfo, qui expose le fichier de ressources en tant que Stream et décrit son type de contenu.GetResourceStream returns a StreamResourceInfo object, which exposes the resource file as a Stream and describes its content type.

À titre d’exemple, le code suivant montre comment utiliser GetResourceStream pour charger un fichier de ressources Page et le définir en tant que contenu d’un Frame (pageFrame) :As an example, the following code shows how to use GetResourceStream to load a Page resource file and set it as the content of a Frame (pageFrame):

// Navigate to xaml page
Uri uri = new Uri("/PageResourceFile.xaml", UriKind.Relative);
StreamResourceInfo info = Application.GetResourceStream(uri);
System.Windows.Markup.XamlReader reader = new System.Windows.Markup.XamlReader();
Page page = (Page)reader.LoadAsync(info.Stream);
this.pageFrame.Content = page;
' Navigate to xaml page
Dim uri As New Uri("/PageResourceFile.xaml", UriKind.Relative)
Dim info As StreamResourceInfo = Application.GetResourceStream(uri)
Dim reader As New System.Windows.Markup.XamlReader()
Dim page As Page = CType(reader.LoadAsync(info.Stream), Page)
Me.pageFrame.Content = page

Quand vous appelez GetResourceStream vous donne accès au Stream, vous devez effectuer la tâche supplémentaire de la convertir au type de la propriété avec laquelle vous allez le définir.While calling GetResourceStream gives you access to the Stream, you need to perform the additional work of converting it to the type of the property that you'll be setting it with. Au lieu de cela, vous pouvez laisser WPF s’occuper de l’ouverture et de la conversion du Stream en chargeant un fichier de ressources directement dans la propriété d’un type à l’aide du code.Instead, you can let WPF take care of opening and converting the Stream by loading a resource file directly into the property of a type using code.

L’exemple suivant montre comment charger un Page directement dans une Frame (pageFrame) à l’aide du code.The following example shows how to load a Page directly into a Frame (pageFrame) using code.

Uri pageUri = new Uri("/PageResourceFile.xaml", UriKind.Relative);
this.pageFrame.Source = pageUri;
Dim pageUri As New Uri("/PageResourceFile.xaml", UriKind.Relative)
Me.pageFrame.Source = pageUri

L’exemple suivant est l’équivalent sous forme de balisage de l’exemple précédent.The following example is the markup equivalent of the preceding example.

<Frame Name="pageFrame" Source="PageResourceFile.xaml" />

Fichiers de code d’application en tant que fichiers de ressourcesApplication Code Files as Resource Files

Un ensemble spécial de fichiers de code d’application WPF peut être référencé à l’aide d’URI à en-tête pack, y compris les fenêtres, les pages, les documents dynamiques et les dictionnaires de ressources.A special set of WPF application code files can be referenced using pack URIs, including windows, pages, flow documents, and resource dictionaries. Par exemple, vous pouvez définir la propriété Application.StartupUri avec un URI à en-tête pack qui référence la fenêtre ou la page que vous souhaitez charger au démarrage d’une application.For example, you can set the Application.StartupUri property with a pack URI that references the window or page that you would like to load when an application starts.

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

Vous pouvez effectuer cette opération quand un fichier XAML est inclus dans un projet MSBuild en tant qu’élément Page.You can do this when a XAML file is included in an MSBuild project as a Page item.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ... >  
  ...  
  <ItemGroup>  
    <Page Include="MainWindow.xaml" />  
  </ItemGroup>  
  ...  
</Project>  

Notes

Dans Visual Studio, vous ajoutez une nouvelle Window, NavigationWindow, Page, FlowDocumentou ResourceDictionary à un projet ; par défaut, la Build Action du fichier de balisage est Page.In Visual Studio, you add a new Window, NavigationWindow, Page, FlowDocument, or ResourceDictionary to a project, the Build Action for the markup file will default to Page.

Lorsqu’un projet avec des éléments de Page est compilé, les éléments XAMLXAML sont convertis au format binaire et compilés dans l’assembly associé.When a project with Page items is compiled, the XAMLXAML items are converted to binary format and compiled into the associated assembly. Ainsi, ces fichiers peuvent être utilisés de la même façon que des fichiers de ressources classiques.Consequently, these files can be used in the same way as typical resource files.

Notes

Si un fichier de XAMLXAML est configuré en tant qu’élément de Resource et n’a pas de fichier code-behind, la XAMLXAML brute est compilée dans un assembly plutôt que dans une version binaire du XAMLXAMLbrut.If a XAMLXAML file is configured as a Resource item, and does not have a code-behind file, the raw XAMLXAML is compiled into an assembly rather than a binary version of the raw XAMLXAML.

Fichiers de contenuContent Files

Un fichier de contenu est distribué en tant que fichier libre avec un assembly exécutable.A content file is distributed as a loose file alongside an executable assembly. Bien qu’ils ne soient pas compilés en un assembly, les assemblys sont compilés à l’aide de métadonnées qui établissent une association avec chaque fichier de contenu.Although they are not compiled into an assembly, assemblies are compiled with metadata that establishes an association with each content file.

Vous devez utiliser des fichiers de contenu quand votre application nécessite un ensemble spécifique de fichiers de données d’application, que vous souhaitez pouvoir mettre à jour sans recompiler l’assembly qui les consomme.You should use content files when your application requires a specific set of application data files that you want to be able to update without recompiling the assembly that consumes them.

Configuration des fichiers de contenuConfiguring Content Files

Pour ajouter un fichier de contenu à un projet, un fichier de données d’application doit être inclus en tant qu’élément de Content.To add a content file to a project, an application data file must be included as a Content item. En outre, étant donné qu’un fichier de contenu n’est pas compilé directement dans l’assembly, vous devez définir l’élément de métadonnées CopyToOutputDirectory MSBuild pour spécifier que le fichier de contenu est copié vers un emplacement relatif à l’assembly généré.Furthermore, because a content file is not compiled directly into the assembly, you need to set the MSBuild CopyToOutputDirectory metadata element to specify that the content file is copied to a location that is relative to the built assembly. Si vous souhaitez que la ressource soit copiée dans le dossier de sortie de la génération chaque fois qu’un projet est généré, vous définissez l’élément de métadonnées CopyToOutputDirectory avec la valeur Always.If you want the resource to be copied to the build output folder every time a project is built, you set the CopyToOutputDirectory metadata element with the Always value. Dans le cas contraire, vous pouvez vous assurer que seule la version la plus récente de la ressource est copiée dans le dossier de sortie de la génération à l’aide de la valeur PreserveNewest.Otherwise, you can ensure that only the newest version of the resource is copied to the build output folder by using the PreserveNewest value.

L’exemple ci-dessous illustre un fichier configuré en tant que fichier de contenu copié dans le dossier de sortie de build uniquement quand une nouvelle version de la ressource est ajoutée au projet.The following shows a file that is configured as a content file which is copied to the build output folder only when a new version of the resource is added to the project.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ... >  
  ...  
  <ItemGroup>  
    <Content Include="ContentFile.xaml">  
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>  
    </Content>  
  </ItemGroup>  
  ...  
</Project>  

Notes

Dans Visual Studio, vous créez un fichier de contenu en ajoutant un fichier à un projet et en définissant sa Build Action sur Content, et en définissant ses Copy to Output Directory sur Copy always (identique à Always) et Copy if newer (identique à PreserveNewest).In Visual Studio, you create a content file by adding a file to a project and setting its Build Action to Content, and set its Copy to Output Directory to Copy always (same as Always) and Copy if newer (same as PreserveNewest).

Lorsque le projet est généré, un attribut AssemblyAssociatedContentFileAttribute est compilé dans les métadonnées de l’assembly pour chaque fichier de contenu.When the project is built, an AssemblyAssociatedContentFileAttribute attribute is compiled into the metadata of the assembly for each content file.

[assembly: AssemblyAssociatedContentFile("ContentFile.xaml")]

La valeur de l' AssemblyAssociatedContentFileAttribute implique le chemin d’accès au fichier de contenu par rapport à sa position dans le projet.The value of the AssemblyAssociatedContentFileAttribute implies the path to the content file relative to its position in the project. Par exemple, si un fichier de contenu se trouve dans un sous-dossier de projet, les informations supplémentaires relatives au chemin d’accès sont incorporées dans la valeur AssemblyAssociatedContentFileAttribute.For example, if a content file was located in a project subfolder, the additional path information would be incorporated into the AssemblyAssociatedContentFileAttribute value.

[assembly: AssemblyAssociatedContentFile("Resources/ContentFile.xaml")]

La valeur AssemblyAssociatedContentFileAttribute est également la valeur du chemin d’accès au fichier de contenu dans le dossier de sortie de la génération.The AssemblyAssociatedContentFileAttribute value is also the value of the path to the content file in the build output folder.

Utilisation des fichiers de contenuUsing Content Files

Pour charger un fichier de contenu, vous pouvez appeler la méthode GetContentStream de la classe Application, en passant un URI à en-tête pack qui identifie le fichier de contenu souhaité.To load a content file, you can call the GetContentStream method of the Application class, passing a pack URI that identifies the desired content file. GetContentStream retourne un objet StreamResourceInfo, qui expose le fichier de contenu en tant que Stream et décrit son type de contenu.GetContentStream returns a StreamResourceInfo object, which exposes the content file as a Stream and describes its content type.

À titre d’exemple, le code suivant montre comment utiliser GetContentStream pour charger un fichier de contenu Page et le définir en tant que contenu d’un Frame (pageFrame).As an example, the following code shows how to use GetContentStream to load a Page content file and set it as the content of a Frame (pageFrame).

// Navigate to xaml page
Uri uri = new Uri("/PageContentFile.xaml", UriKind.Relative);
StreamResourceInfo info = Application.GetContentStream(uri);
System.Windows.Markup.XamlReader reader = new System.Windows.Markup.XamlReader();
Page page = (Page)reader.LoadAsync(info.Stream);
this.pageFrame.Content = page;
' Navigate to xaml page
Dim uri As New Uri("/PageContentFile.xaml", UriKind.Relative)
Dim info As StreamResourceInfo = Application.GetContentStream(uri)
Dim reader As New System.Windows.Markup.XamlReader()
Dim page As Page = CType(reader.LoadAsync(info.Stream), Page)
Me.pageFrame.Content = page

Quand vous appelez GetContentStream vous donne accès au Stream, vous devez effectuer la tâche supplémentaire de la convertir au type de la propriété avec laquelle vous allez le définir.While calling GetContentStream gives you access to the Stream, you need to perform the additional work of converting it to the type of the property that you'll be setting it with. Au lieu de cela, vous pouvez laisser WPF s’occuper de l’ouverture et de la conversion du Stream en chargeant un fichier de ressources directement dans la propriété d’un type à l’aide du code.Instead, you can let WPF take care of opening and converting the Stream by loading a resource file directly into the property of a type using code.

L’exemple suivant montre comment charger un Page directement dans une Frame (pageFrame) à l’aide du code.The following example shows how to load a Page directly into a Frame (pageFrame) using code.

Uri pageUri = new Uri("/PageContentFile.xaml", UriKind.Relative);
this.pageFrame.Source = pageUri;
Dim pageUri As New Uri("/PageContentFile.xaml", UriKind.Relative)
Me.pageFrame.Source = pageUri

L’exemple suivant est l’équivalent sous forme de balisage de l’exemple précédent.The following example is the markup equivalent of the preceding example.

<Frame Name="pageFrame" Source="PageContentFile.xaml" />

Fichiers du site d’origineSite of Origin Files

Les fichiers de ressources ont une relation explicite avec les assemblys avec lesquels ils sont distribués, comme défini par le AssemblyAssociatedContentFileAttribute.Resource files have an explicit relationship with the assemblies that they are distributed alongside, as defined by the AssemblyAssociatedContentFileAttribute. Toutefois, vous pouvez être amené à établir une relation implicite ou inexistante entre un assembly et un fichier de données d’application, notamment dans les situations suivantes :But, there are times when you may want to establish either an implicit or non-existent relationship between an assembly and an application data file, including when:

  • Un fichier n’existe pas au moment de la compilation.A file doesn't exist at compile time.

  • Vous ignorez de quels fichiers votre assembly a besoin jusqu’au moment de l’exécution.You don't know what files your assembly will require until run time.

  • Vous souhaitez pouvoir mettre à jour des fichiers sans recompiler l’assembly auquel ils sont associés.You want to be able to update files without recompiling the assembly that they are associated with.

  • Votre application utilise des fichiers de données volumineux, par exemple des fichiers audio et vidéo, et vous souhaitez que les utilisateurs aient le choix de les télécharger ou non.Your application uses large data files, such as audio and video, and you only want users to download them if they choose to.

Il est possible de charger ces types de fichiers à l’aide de schémas d’URI traditionnels, tels que les schémas file:///et http://.It is possible to load these types of files by using traditional URI schemes, such as the file:/// and http:// schemes.

<Image Source="file:///C:/DataFile.bmp" />
<Image Source="http://www.datafilewebsite.com/DataFile.bmp" />

Toutefois, pour les schémas file:/// et http:// votre application doit bénéficier d’une confiance totale.However, the file:/// and http:// schemes require your application to have full trust. Si votre application est une application de navigateur XAML (XBAP) lancée à partir d’Internet ou d’un intranet, et qu’elle demande uniquement le jeu d’autorisations autorisé pour les applications lancées à partir de ces emplacements, les fichiers libres peuvent uniquement être chargés à partir du site d’origine de l’application (emplacement de lancement).If your application is a XAML browser application (XBAP) that was launched from the Internet or intranet, and it requests only the set of permissions that are allowed for applications launched from those locations, loose files can only be loaded from the application's site of origin (launch location). Ces fichiers sont appelés fichiers de site d’origine .Such files are known as site of origin files.

Les fichiers du site d’origine sont la seule option pour les applications partiellement fiables. Toutefois, ils ne se limitent pas à ces applications.Site of origin files are the only option for partial trust applications, although are not limited to partial trust applications. Les applications entièrement fiables peuvent tout de même avoir besoin de charger des fichiers de données d’application dont ils n’ont pas connaissance au moment de la génération. Bien que les applications entièrement fiables puissent utiliser file:///, les fichiers de données d’application sont probablement installés dans le même dossier ou sous-dossier que l’assembly d’application.Full trust applications may still need to load application data files that they do not know about at build time; while full trust applications could use file:///, it is likely that the application data files will be installed in the same folder as, or a subfolder of, the application assembly. Dans ce cas, l’utilisation du référencement du site d’origine est plus facile que l’utilisation de file:///, car avec file:/// vous devez résoudre le chemin complet du fichier.In this case, using site of origin referencing is easier than using file:///, because using file:/// requires you to work out the full path the file.

Notes

Les fichiers de site d’origine ne sont pas mis en cache avec une application de navigateur XAML (XBAP) sur un ordinateur client, tandis que les fichiers de contenu sont.Site of origin files are not cached with an XAML browser application (XBAP) on a client machine, while content files are. Ils sont donc téléchargés à la demande.Consequently, they are only downloaded when specifically requested. Si une application de navigateur XAML (XBAP) contient des fichiers multimédias volumineux, leur configuration en tant que fichiers de site d’origine signifie que le lancement de l’application initiale est beaucoup plus rapide et que les fichiers ne sont téléchargés qu’à la demande.If an XAML browser application (XBAP) application has large media files, configuring them as site of origin files means the initial application launch is much faster, and the files are only downloaded on demand.

Configuration des fichiers du site d’origineConfiguring Site of Origin Files

Si vos fichiers de site d’origine sont inexistants ou inconnus au moment de la compilation, vous devez utiliser des mécanismes de déploiement traditionnels pour vous assurer que les fichiers requis sont disponibles au moment de l’exécution, y compris en utilisant le programme de ligne de commande XCopy ou le Microsoft Windows Installer.If your site of origin files are non-existent or unknown at compile time, you need to use traditional deployment mechanisms for ensuring the required files are available at run time, including using either the XCopy command-line program or the Microsoft Windows Installer.

Si vous savez au moment de la compilation les fichiers que vous souhaitez placer sur le site d’origine, mais que vous souhaitez toujours éviter une dépendance explicite, vous pouvez ajouter ces fichiers à un projet MSBuild en tant qu’élément None.If you do know at compile time the files that you would like to be located at the site of origin, but still want to avoid an explicit dependency, you can add those files to an MSBuild project as None item. Comme pour les fichiers de contenu, vous devez définir l’attribut CopyToOutputDirectory MSBuild pour spécifier que le fichier du site d’origine est copié vers un emplacement relatif à l’assembly généré, en spécifiant la valeur Always ou la valeur PreserveNewest.As with content files, you need to set the MSBuild CopyToOutputDirectory attribute to specify that the site of origin file is copied to a location that is relative to the built assembly, by specifying either the Always value or the PreserveNewest value.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ... >  
  ...  
  <None Include="PageSiteOfOriginFile.xaml">  
    <CopyToOutputDirectory>Always</CopyToOutputDirectory>  
  </None>  
  ...  
</Project>  

Notes

Dans Visual Studio, vous créez un fichier de site d’origine en ajoutant un fichier à un projet et en définissant sa Build Action sur None.In Visual Studio, you create a site of origin file by adding a file to a project and setting its Build Action to None.

Lorsque le projet est généré, MSBuild copie les fichiers spécifiés dans le dossier de sortie de la génération.When the project is built, MSBuild copies the specified files to the build output folder.

Utilisation des fichiers du site d’origineUsing Site of Origin Files

Pour charger un fichier de site d’origine, vous pouvez appeler la méthode GetRemoteStream de la classe Application, en passant un URI à en-tête pack qui identifie le fichier de site d’origine souhaité.To load a site of origin file, you can call the GetRemoteStream method of the Application class, passing a pack URI that identifies the desired site of origin file. GetRemoteStream retourne un objet StreamResourceInfo, qui expose le fichier de site d’origine en tant que Stream et décrit son type de contenu.GetRemoteStream returns a StreamResourceInfo object, which exposes the site of origin file as a Stream and describes its content type.

À titre d’exemple, le code suivant montre comment utiliser GetRemoteStream pour charger un Page site de fichier d’origine et le définir en tant que contenu d’un Frame (pageFrame).As an example, the following code shows how to use GetRemoteStream to load a Page site of origin file and set it as the content of a Frame (pageFrame).

// Navigate to xaml page
Uri uri = new Uri("/SiteOfOriginFile.xaml", UriKind.Relative);
StreamResourceInfo info = Application.GetRemoteStream(uri);
System.Windows.Markup.XamlReader reader = new System.Windows.Markup.XamlReader();
Page page = (Page)reader.LoadAsync(info.Stream);
this.pageFrame.Content = page;
' Navigate to xaml page
Dim uri As New Uri("/SiteOfOriginFile.xaml", UriKind.Relative)
Dim info As StreamResourceInfo = Application.GetRemoteStream(uri)
Dim reader As New System.Windows.Markup.XamlReader()
Dim page As Page = CType(reader.LoadAsync(info.Stream), Page)
Me.pageFrame.Content = page

Quand vous appelez GetRemoteStream vous donne accès au Stream, vous devez effectuer la tâche supplémentaire de la convertir au type de la propriété avec laquelle vous allez le définir.While calling GetRemoteStream gives you access to the Stream, you need to perform the additional work of converting it to the type of the property that you'll be setting it with. Au lieu de cela, vous pouvez laisser WPF s’occuper de l’ouverture et de la conversion du Stream en chargeant un fichier de ressources directement dans la propriété d’un type à l’aide du code.Instead, you can let WPF take care of opening and converting the Stream by loading a resource file directly into the property of a type using code.

L’exemple suivant montre comment charger un Page directement dans une Frame (pageFrame) à l’aide du code.The following example shows how to load a Page directly into a Frame (pageFrame) using code.

Uri pageUri = new Uri("pack://siteoforigin:,,,/SiteOfOriginFile.xaml", UriKind.Absolute);
this.pageFrame.Source = pageUri;
Dim pageUri As New Uri("pack://siteoforigin:,,,/Subfolder/SiteOfOriginFile.xaml", UriKind.Absolute)
Me.pageFrame.Source = pageUri

L’exemple suivant est l’équivalent sous forme de balisage de l’exemple précédent.The following example is the markup equivalent of the preceding example.

<Frame Name="pageFrame" Source="pack://siteoforigin:,,,/SiteOfOriginFile.xaml" />

Regénération après changement du type de buildRebuilding After Changing Build Type

Après avoir changé le type de build d’un fichier de données d’application, vous devez regénérer l’application entière pour vérifier que ces changements sont bien appliqués.After you change the build type of an application data file, you need to rebuild the entire application to ensure those changes are applied. Si vous générez uniquement l’application, les changements ne sont pas appliqués.If you only build the application, the changes are not applied.

Voir aussiSee also