File di dati e di risorse dell'applicazione WPF.WPF Application Resource, Content, and Data Files

Microsoft WindowsMicrosoft Windows le applicazioni spesso dipendono dai file che contengono dati non eseguibili, ad esempio Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML), immagini, video e audio. applications often depend on files that contain non-executable data, such as Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML), images, video, and audio. Windows Presentation Foundation (WPF) offre un supporto speciale per la configurazione, l'identificazione e l'utilizzo di questi tipi di file di dati, ovvero file di dati applicazione.Windows Presentation Foundation (WPF) offers special support for configuring, identifying, and using these types of data files, which are called application data files. Questo supporto si basa su un set specifico di tipi di file di dati dell'applicazione, che include:This support revolves around a specific set of application data file types, including:

  • File di risorse: file di dati che vengono compilati in un file eseguibile o libreria WPFWPF assembly.Resource Files: Data files that are compiled into either an executable or library WPFWPF assembly.

  • File di contenuto: file di dati autonomi che non hanno un'associazione esplicita con un file eseguibile WPFWPF assembly.Content Files: Standalone data files that have an explicit association with an executable WPFWPF assembly.

  • Sito di origine: file di dati autonomi che non hanno alcuna associazione con un file eseguibile WPFWPF assembly.Site of Origin Files: Standalone data files that have no association with an executable WPFWPF assembly.

Un'importante distinzione da fare tra questi tre tipi di file riguarda il fatto che i file di risorse e i file di dati sono resi noti in fase di compilazione e pertanto sono conosciuti esplicitamente da un assembly.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. Per il sito di origine, tuttavia, un assembly non può avere alcuna conoscenza della loro del tutto, conoscenza implicita tramite un pacchetto o Uniform Resource Identifier (URI)uniform resource identifier (URI) riferimento; nel caso di quest'ultimo, non c'è garanzia che il sito di riferimento di file di origine esista effettivamente.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)uniform resource identifier (URI) reference; the case of the latter, there is no guarantee that the referenced site of origin file actually exists.

Per fare riferimento a file di dati dell'applicazione, Windows Presentation Foundation (WPF) utilizza il pacchetto Uniform Resource Identifier (URI)uniform resource identifier (URI) schema, descritto dettagliatamente in URI di tipo Pack in WPF).To reference application data files, Windows Presentation Foundation (WPF) uses the Pack Uniform Resource Identifier (URI)uniform resource identifier (URI) Scheme, which is described in detail in Pack URIs in WPF).

Questo argomento descrive come configurare e usare i file di dati dell'applicazione.This topic describes how to configure and use application data files.

File di risorseResource Files

Se un file di dati deve essere sempre disponibile per un'applicazione, l'unico modo per garantire la disponibilità è compilarlo nell'assembly eseguibile principale dell'applicazione o in uno degli assembly a cui si fa riferimento.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. Questo tipo di file di dati dell'applicazione è noto come un file di risorse.This type of application data file is known as a resource file.

I file di risorse devono essere utilizzati nei casi seguenti:You should use resource files when:

  • Non occorre aggiornare il contenuto del file di risorse dopo la relativa compilazione in un assembly.You don't need to update the resource file's content after it is compiled into an assembly.

  • Si desidera semplificare la complessità di distribuzione dell'applicazione riducendo il numero di dipendenze dei file.You want to simplify application distribution complexity by reducing the number of file dependencies.

  • File di dati dell'applicazione deve essere localizzabile (vedere WPF Panoramica della globalizzazione e localizzazione).Your application data file needs to be localizable (see WPF Globalization and Localization Overview).

Nota

I file di risorse descritti in questa sezione sono diversi da file di risorse descritta risorse XAML e diverso da quello delle risorse incorporate o collegate al risorse dell'applicazione di gestione (.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 Managing Application Resources (.NET).

Configurazione dei file di risorseConfiguring Resource Files

In WPFWPF, un file di risorse è un file che è incluso in un Microsoft Build Engine (MSBuild)Microsoft build engine (MSBuild) il progetto come un Resource elemento.In WPFWPF, a resource file is a file that is included in an Microsoft Build Engine (MSBuild)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>  

Nota

In Microsoft Visual StudioMicrosoft Visual Studio, si crea un file di risorse mediante l'aggiunta di un file a un progetto e impostare il relativo Build Action a Resource.In Microsoft Visual StudioMicrosoft Visual Studio, you create a resource file by adding a file to a project and setting its Build Action to Resource.

Quando il progetto viene compilato, MSBuildMSBuild compila la risorsa nell'assembly.When the project is built, MSBuildMSBuild compiles the resource into the assembly.

Uso dei file di risorseUsing Resource Files

Per caricare un file di risorse, è possibile chiamare il GetResourceStream metodo il Application (classe), il passaggio di un pacchetto di URIURI che identifica il file di risorsa desiderata.To load a resource file, you can call the GetResourceStream method of the Application class, passing a pack URIURI that identifies the desired resource file. GetResourceStream Restituisce un StreamResourceInfo oggetto che espone il file di risorse come un Stream e descrive il tipo di contenuto.GetResourceStream returns a StreamResourceInfo object, which exposes the resource file as a Stream and describes its content type.

Ad esempio, il codice seguente viene illustrato come utilizzare GetResourceStream per caricare un Page risorse di file e impostarlo come contenuto di 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

Durante la chiamata GetResourceStream consente di accedere al Stream, è necessario eseguire ulteriori operazioni di conversione al tipo della proprietà verrà impostato con.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. È invece possibile consentire WPFWPF occuperà di apertura e la conversione di Stream caricando un file di risorse direttamente nella proprietà di un tipo tramite codice.Instead, you can let WPFWPF take care of opening and converting the Stream by loading a resource file directly into the property of a type using code.

Nell'esempio seguente viene illustrato come caricare un Page direttamente in un Frame (pageFrame) mediante il codice.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'esempio seguente illustra il markup equivalente del precedente esempio.The following example is the markup equivalent of the preceding example.

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

File di codice dell'applicazione come file di risorseApplication Code Files as Resource Files

Uno speciale set di WPFWPF file di codice dell'applicazione è possibile fare riferimento utilizzando pack URIURIs, tra cui windows, pagine, documenti dinamici e dizionari delle risorse.A special set of WPFWPF application code files can be referenced using pack URIURIs, including windows, pages, flow documents, and resource dictionaries. Ad esempio, è possibile impostare il Application.StartupUri proprietà con un pacchetto di URIURI che fa riferimento alla finestra o una pagina che si desidera caricare all'avvio di un'applicazione.For example, you can set the Application.StartupUri property with a pack URIURI 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" />

È possibile eseguire questa operazione quando un XAMLXAML file è incluso un Microsoft Build Engine (MSBuild)Microsoft build engine (MSBuild) il progetto come un Page elemento.You can do this when a XAMLXAML file is included in an Microsoft Build Engine (MSBuild)Microsoft build engine (MSBuild) project as a Page item.

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

Nota

In Visual StudioVisual Studio, si aggiunge un nuovo Window, NavigationWindow, Page, FlowDocument, o ResourceDictionary a un progetto, il Build Action per il markup file utilizzerà Page.In Visual StudioVisual 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.

Quando un progetto con Page elementi viene compilato, il XAMLXAML elementi vengono convertiti in formato binario e compilati in assembly associato.When a project with Page items is compiled, the XAMLXAML items are converted to binary format and compiled into the associated assembly. Di conseguenza, questi file possono essere utilizzati allo stesso modo dei file di risorse tipici.Consequently, these files can be used in the same way as typical resource files.

Nota

Se un XAMLXAML file è configurato come un Resource elemento e non dispone di un file code-behind, non elaborato XAMLXAML viene compilato in un assembly, anziché una versione binaria del non elaborato XAMLXAML.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.

File di datiContent Files

Oggetto file di contenuto viene distribuito come file separato insieme a un assembly eseguibile.A content file is distributed as a loose file alongside an executable assembly. Sebbene questi file non vengano compilati in un assembly, dal canto loro gli assembly vengono compilati con i metadati che stabiliscono un'associazione con ciascun file di dati.Although they are not compiled into an assembly, assemblies are compiled with metadata that establishes an association with each content file.

È necessario utilizzare i file di dati quando l'applicazione richiede un set specifico di file di dati che possono essere aggiornati senza dover ricompilare l'assembly che li utilizza.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.

Configurazione dei file di datiConfiguring Content Files

Per aggiungere un file di contenuto a un progetto, un file di dati dell'applicazione deve essere incluso come un Content elemento.To add a content file to a project, an application data file must be included as a Content item. Inoltre, poiché un file di contenuto non viene compilato nell'assembly, è necessario impostare il MSBuildMSBuild CopyToOutputDirectory elemento dei metadati per specificare che il file di contenuto viene copiato in un percorso relativo all'assembly compilato.Furthermore, because a content file is not compiled directly into the assembly, you need to set the MSBuildMSBuildCopyToOutputDirectory metadata element to specify that the content file is copied to a location that is relative to the built assembly. Se si desidera che la risorsa da copiare nella cartella di output di compilazione ogni volta che viene compilato un progetto, impostare il CopyToOutputDirectory elemento dei metadati con il Always valore.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. In caso contrario, è possibile assicurarsi che solo la versione più recente della risorsa viene copiata nella cartella di output di compilazione tramite la PreserveNewest valore.Otherwise, you can ensure that only the newest version of the resource is copied to the build output folder by using the PreserveNewest value.

Di seguito viene illustrato un file configurato come file di dati, che viene copiato nella cartella dell'output di compilazione solo quando una nuova versione della risorsa viene aggiunta al progetto.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>  

Nota

In Visual StudioVisual Studio, si crea un file di contenuto aggiungendo un file a un progetto e impostare il relativo Build Action per Contente impostare relativo Copy to Output Directory per Copy always (uguale a Always) e Copy if newer (uguale a PreserveNewest).In Visual StudioVisual 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).

Quando il progetto viene compilato, un AssemblyAssociatedContentFileAttribute viene compilato attributo nei metadati dell'assembly per ciascun file di contenuto.When the project is built, an AssemblyAssociatedContentFileAttribute attribute is compiled into the metadata of the assembly for each content file.

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

Il valore di AssemblyAssociatedContentFileAttribute implica il percorso al file di contenuto relativo alla posizione nel progetto.The value of the AssemblyAssociatedContentFileAttribute implies the path to the content file relative to its position in the project. Ad esempio, se un file di contenuto si trova in una sottocartella del progetto, le informazioni sul percorso aggiuntive verrebbero incorporate nel AssemblyAssociatedContentFileAttribute valore.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")]

Il AssemblyAssociatedContentFileAttribute valore è anche il valore del percorso al file di contenuto nella cartella di output di compilazione.The AssemblyAssociatedContentFileAttribute value is also the value of the path to the content file in the build output folder.

Uso dei file di contenutoUsing Content Files

Per caricare un file di contenuto, è possibile chiamare il GetContentStream metodo il Application (classe), il passaggio di un pacchetto di URIURI che identifica il file di contenuto desiderato.To load a content file, you can call the GetContentStream method of the Application class, passing a pack URIURI that identifies the desired content file. GetContentStream Restituisce un StreamResourceInfo oggetto che espone il file di contenuto come un Stream e descrive il tipo di contenuto.GetContentStream returns a StreamResourceInfo object, which exposes the content file as a Stream and describes its content type.

Ad esempio, il codice seguente viene illustrato come utilizzare GetContentStream per caricare un Page file di contenuto e impostarlo come contenuto di 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

Durante la chiamata GetContentStream consente di accedere al Stream, è necessario eseguire ulteriori operazioni di conversione al tipo della proprietà verrà impostato con.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. È invece possibile consentire WPFWPF occuperà di apertura e la conversione di Stream caricando un file di risorse direttamente nella proprietà di un tipo tramite codice.Instead, you can let WPFWPF take care of opening and converting the Stream by loading a resource file directly into the property of a type using code.

Nell'esempio seguente viene illustrato come caricare un Page direttamente in un Frame (pageFrame) mediante il codice.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'esempio seguente illustra il markup equivalente del precedente esempio.The following example is the markup equivalent of the preceding example.

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

File del sito di origineSite of Origin Files

File di risorse hanno una relazione esplicita con gli assembly che vengono distribuiti insieme, come definito dal AssemblyAssociatedContentFileAttribute.Resource files have an explicit relationship with the assemblies that they are distributed alongside, as defined by the AssemblyAssociatedContentFileAttribute. Talvolta, è tuttavia possibile che si debba stabilire una relazione implicita o inesistente tra un assembly e un file di dati dell'applicazione, come nei casi seguenti: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 file non esiste in fase di compilazione.A file doesn't exist when at compile time.

  • I file richiesti dall'assembly non saranno noti fino alla fase di esecuzione.You don't know what files your assembly will require until run time.

  • Si desidera avere la possibilità di aggiornare i file senza ricompilare l'assembly al quale sono associati.You want to be able to update files without recompiling the assembly that they are associated with.

  • L'applicazione utilizza file di dati di grandi dimensioni, ad esempio audio e video, che devono essere scaricati dagli utenti unicamente su richiesta.Your application uses large data files, such as audio and video, and you only want users to download them if they choose to.

È possibile caricare questi tipi di file mediante l'utilizzo tradizionale URIURI gli schemi, ad esempio gli schemi file:/// e http://.It is possible to load these types of files by using traditional URIURI schemes, such as the file:/// and http:// schemes.

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

Tuttavia, gli schemi file:/// e http:// richiedono che l'applicazione abbia un livello di attendibilità totale.However, the file:/// and http:// schemes require your application to have full trust. Se l'applicazione è un applicazione browser XAML (XBAP)XAML browser application (XBAP) che è stato avviato da Internet o intranet e richiede solo il set di autorizzazioni consentite per le applicazioni avviate da tali percorsi, file separati possono essere caricati solo dal sito di origine (dell'applicazione posizione di avvio).If your application is a applicazione browser XAML (XBAP)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). I file sono noti come sito di origine file.Such files are known as site of origin files.

I file del sito di origine rappresentano l'unica opzione per le applicazioni parzialmente attendibili, benché non siano limitati a questo tipo di applicazione.Site of origin files are the only option for partial trust applications, although are not limited to partial trust applications. È possibile che le applicazioni completamente attendibili debbano caricare file di dati dell'applicazione sconosciuti in fase di compilazione. Sebbene queste applicazioni possano utilizzare file:///, è probabile che i file di dati dell'applicazione vengano installati nella stessa cartella dell'assembly dell'applicazione o in una sottocartella di questo.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. In questo caso è più facile utilizzare un riferimento al sito di origine piuttosto che file:///, poiché l'utilizzo di file:/// richiede l'elaborazione del percorso completo del file.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.

Nota

Sito di origine file non vengono memorizzati nella cache con un applicazione browser XAML (XBAP)XAML browser application (XBAP) su un computer client, mentre i file di contenuto.Site of origin files are not cached with an applicazione browser XAML (XBAP)XAML browser application (XBAP) on a client machine, while content files are. Di conseguenza, vengono scaricati solo se esplicitamente richiesto.Consequently, they are only downloaded when specifically requested. Se un applicazione browser XAML (XBAP)XAML browser application (XBAP) applicazione dispone di file multimediali di grandi dimensioni, configurarli come sito di origine indica l'avvio dell'applicazione iniziale è molto più veloce e i file vengono scaricati solo su richiesta.If an applicazione browser XAML (XBAP)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.

Configurazione dei file del sito di origineConfiguring Site of Origin Files

Se il sito di origine sconosciuto o non esistente in fase di compilazione, è necessario utilizzare distribuzione tradizionali meccanismi per assicurare che i file necessari sono disponibili in fase di esecuzione, incluso l'utilizzo di uno il XCopy programma della riga di comando o il Microsoft Windows InstallerMicrosoft 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 InstallerMicrosoft Windows Installer.

Se si conosce in fase di compilazione i file si trovi nel sito di origine, ma si desidera evitare una dipendenza esplicita, è possibile aggiungere tali file in un Microsoft Build Engine (MSBuild)Microsoft build engine (MSBuild) il progetto come None elemento.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 Microsoft Build Engine (MSBuild)Microsoft build engine (MSBuild) project as None item. Come con i file di contenuto, è necessario impostare il MSBuildMSBuild CopyToOutputDirectory attributo per specificare che il file del sito di origine viene copiato in un percorso relativo all'assembly compilato, specificando il Always valore o PreserveNewest valore.As with content files, you need to set the MSBuildMSBuildCopyToOutputDirectory 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>  

Nota

In Visual StudioVisual Studio, si crea un sito di file di origine tramite l'aggiunta di un file a un progetto e impostare il relativo Build Action a None.In Visual StudioVisual Studio, you create a site of origin file by adding a file to a project and setting its Build Action to None.

Quando il progetto viene compilato, MSBuildMSBuild copia i file specificati nella cartella di output di compilazione.When the project is built, MSBuildMSBuild copies the specified files to the build output folder.

Uso dei file del sito di origineUsing Site of Origin Files

Per caricare un file di origine del sito, è possibile chiamare il GetRemoteStream metodo il Application classe, passando un pack URIURI che identifica il sito desiderato di file di origine.To load a site of origin file, you can call the GetRemoteStream method of the Application class, passing a pack URIURI that identifies the desired site of origin file. GetRemoteStream Restituisce un StreamResourceInfo oggetto che espone il file del sito di origine come un Stream e descrive il tipo di contenuto.GetRemoteStream returns a StreamResourceInfo object, which exposes the site of origin file as a Stream and describes its content type.

Ad esempio, il codice seguente viene illustrato come utilizzare GetRemoteStream per caricare un Page sito di origine di file e impostarlo come contenuto di 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

Durante la chiamata GetRemoteStream consente di accedere al Stream, è necessario eseguire ulteriori operazioni di conversione al tipo della proprietà verrà impostato con.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. È invece possibile consentire WPFWPF occuperà di apertura e la conversione di Stream caricando un file di risorse direttamente nella proprietà di un tipo tramite codice.Instead, you can let WPFWPF take care of opening and converting the Stream by loading a resource file directly into the property of a type using code.

Nell'esempio seguente viene illustrato come caricare un Page direttamente in un Frame (pageFrame) mediante il codice.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'esempio seguente illustra il markup equivalente del precedente esempio.The following example is the markup equivalent of the preceding example.

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

Ricompilazione in seguito alla modifica del tipo di compilazioneRebuilding After Changing Build Type

Dopo avere modificato il tipo di compilazione di un file di dati dell'applicazione, è necessario ricompilare l'intera applicazione affinché le modifiche vengano applicate.After you change the build type of an application data file, you need to rebuild the entire application to ensure those changes are applied. Se ci si limita a compilare l'applicazione, le modifiche non vengono applicate.If you only build the application, the changes are not applied.

Vedere ancheSee Also

URI di tipo pack in WPFPack URIs in WPF