WPF アプリケーションのリソース ファイル、コンテンツ ファイル、およびデータ ファイルWPF Application Resource, Content, and Data Files

Microsoft WindowsMicrosoft Windows 多くの場合など、非実行可能ファイルのデータを含むファイルに依存するアプリケーションExtensible Application Markup Language (XAML)Extensible Application Markup Language (XAML)イメージ、ビデオ、およびオーディオです。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) の構成の識別、およびこれらの種類のアプリケーション データ ファイルと呼ばれる、データ ファイルを使用して特別なサポートを提供します。Windows Presentation Foundation (WPF) offers special support for configuring, identifying, and using these types of data files, which are called application data files. このサポートの中心となるのは、次のような特定のアプリケーション データ ファイルの種類のセットです。This support revolves around a specific set of application data file types, including:

  • リソース ファイル:データ ファイルも実行可能ファイルまたはライブラリにコンパイルされるWPFWPFアセンブリ。Resource Files: Data files that are compiled into either an executable or library WPFWPF assembly.

  • コンテンツ ファイル:スタンドアロン データ ファイルを実行可能ファイルとの明示的な関連付けを持つWPFWPFアセンブリ。Content Files: Standalone data files that have an explicit association with an executable WPFWPF assembly.

  • 起点サイト ファイル:実行可能ファイルとの関連付けを持たないスタンドアロン データ ファイルWPFWPFアセンブリ。Site of Origin Files: Standalone data files that have no association with an executable WPFWPF assembly.

これらの 3 種類のファイルの重要な違いは、リソース ファイルとコンテンツ ファイルはビルド時に認識されるという点です。アセンブリは、これらを明確に認識します。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. 起点サイト ファイル、ただし、アセンブリがありますそれらの知識、またはパックを使用して暗黙的な知識Uniform Resource Identifier (URI)uniform resource identifier (URI)参照。 後者の場合、参照される起点サイト ファイルが実際に存在する保証はありません。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.

Windows Presentation Foundation (WPF) が、パックを使用するにはアプリケーション データ ファイルを参照するには、Uniform Resource Identifier (URI)uniform resource identifier (URI)はで詳しく説明されているスキームWPF におけるパック Uri)。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).

このトピックでは、アプリケーション データ ファイルを構成および使用する方法について説明します。This topic describes how to configure and use application data files.

リソース ファイル (Visual Studio)Resource Files

アプリケーション データ ファイルを常にアプリケーションで使用可能にするには、コンパイルしてアプリケーションのメイン実行可能アセンブリまたはその参照アセンブリの 1 つに組み込む必要があります。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. この種類のアプリケーション データ ファイルと呼ばれる、リソース ファイルします。This type of application data file is known as a resource file.

リソース ファイルは、次のときに使用します。You should use resource files when:

  • コンパイルしてアセンブリに組み込んだ後に、リソース ファイルのコンテンツを更新する必要がない。You don't need to update the resource file's content after it is compiled into an assembly.

  • ファイルの依存関係の数を減らして、アプリケーション配布の複雑さを軽減する必要がある。You want to simplify application distribution complexity by reducing the number of file dependencies.

  • アプリケーション データ ファイルがローカライズ可能にする必要があります (を参照してくださいWPF のグローバリゼーションおよびローカリゼーションの概要)。Your application data file needs to be localizable (see WPF Globalization and Localization Overview).

注意

このセクションで説明されているリソース ファイルは、リソース ファイルで説明されているものと異なるXAML リソースしで説明されている埋め込みまたはリンクされたリソースとは異なる管理アプリケーションのリソース (.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).

リソース ファイルの構成Configuring Resource Files

WPFWPF、リソース ファイルに含まれているファイルとは、Microsoft Build Engine (MSBuild)Microsoft build engine (MSBuild)プロジェクトとして、Resource項目。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>  

注意

Microsoft Visual StudioMicrosoft Visual Studio、リソース ファイルを作成するファイルをプロジェクトの設定を追加してそのBuild ActionResourceします。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.

プロジェクトのビルド時にMSBuildMSBuildリソースをアセンブリにコンパイルされます。When the project is built, MSBuildMSBuild compiles the resource into the assembly.

リソース ファイルの使用Using Resource Files

リソース ファイルを読み込むを呼び出すことができます、GetResourceStreamのメソッド、Applicationクラス、パックURIURI目的のリソース ファイルを識別します。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 返します、StreamResourceInfoリソース ファイルとして公開するオブジェクト、Streamとそのコンテンツの種類について説明します。GetResourceStream returns a StreamResourceInfo object, which exposes the resource file as a Stream and describes its content type.

たとえば、次のコードが使用する方法を示しますGetResourceStreamを読み込む、Pageリソース ファイルし、のコンテンツとして設定する、 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

呼び出し中にGetResourceStreamにアクセスすること、 Stream、それを設定 プロパティの型に変換する余分な作業を実行する必要があります。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. 代わりに、させることができますWPFWPF注意を開いたり変換したり、Streamでコードを使用して型のプロパティに直接、リソース ファイルを読み込みます。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.

次の例を読み込む方法を示しています、Pageに直接、 Frame (pageFrame) コードを使用します。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

次の例は、上の例と同じ意味のマークアップです。The following example is the markup equivalent of the preceding example.

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

リソース ファイルとしてのアプリケーション コード ファイルApplication Code Files as Resource Files

一連の特殊なWPFWPFパックを使用して、アプリケーション コード ファイルを参照できるURIURIs(windows、ページ、フロー ドキュメント、リソース ディクショナリなど)。A special set of WPFWPF application code files can be referenced using pack URIURIs, including windows, pages, flow documents, and resource dictionaries. たとえば、設定、Application.StartupUriパック プロパティURIURIウィンドウまたはアプリケーションの起動時に読み込むしたいページを参照します。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" />

場合にこのを行うことができます、XAMLXAMLでファイルが含まれて、Microsoft Build Engine (MSBuild)Microsoft build engine (MSBuild)プロジェクトとして、Page項目。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>  

注意

Visual StudioVisual Studio、追加WindowNavigationWindowPageFlowDocument、またはResourceDictionaryをプロジェクトに、Build Actionファイルは既定のマークアップ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.

ときに、プロジェクトでPage項目がコンパイルされると、XAMLXAML項目がバイナリ形式に変換され、関連付けられているアセンブリにコンパイルします。When a project with Page items is compiled, the XAMLXAML items are converted to binary format and compiled into the associated assembly. したがって、これらのファイルは、通常のリソース ファイルと同様に使用できます。Consequently, these files can be used in the same way as typical resource files.

注意

場合、XAMLXAMLとしてファイルが構成されている、Resource項目、および分離コード ファイル、生がないXAMLXAMLは、生のバイナリのバージョンではなく、アセンブリにコンパイル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.

コンテンツ ファイルContent Files

Aコンテンツ ファイルは実行可能アセンブリと共に圧縮しないファイルとして配布されます。A content file is distributed as a loose file alongside an executable assembly. コンテンツ ファイルはコンパイルされてアセンブリに組み込まれるのではありませんが、アセンブリのコンパイル時に、各コンテンツ ファイルとの関連付けを確立するメタデータが使用されます。Although they are not compiled into an assembly, assemblies are compiled with metadata that establishes an association with each content file.

アプリケーションに必要な特定のアプリケーション データ ファイルのセットが更新されても、そのファイルを使用するアセンブリを再コンパイルせずに、コンテンツ ファイルを使用する必要があります。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.

コンテンツ ファイルの構成Configuring Content Files

コンテンツ ファイルをプロジェクトに追加するには、アプリケーション データ ファイルでとして指定する必要があります、Content項目。To add a content file to a project, an application data file must be included as a Content item. さらに、コンテンツ ファイルがアセンブリに直接コンパイルされていないため、設定する必要が、 MSBuildMSBuild CopyToOutputDirectoryメタデータ要素をコンテンツ ファイルがビルドされたアセンブリに対して相対的な場所にコピーされたことを指定します。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. プロジェクトをビルド、リソースを毎回ビルド出力フォルダーにコピーする場合は、設定、CopyToOutputDirectoryメタデータ要素を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. 使用してビルド出力フォルダーにリソースの最新バージョンのみがコピーされたことを確認する場合は、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.

次に示すファイルは、新しいバージョンのリソースがプロジェクトに追加された場合にのみビルド出力フォルダーにコピーされるコンテンツ ファイルとして構成されています。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>  

注意

Visual StudioVisual Studio、ファイルをプロジェクトの設定を追加して、コンテンツ ファイルを作成するそのBuild ActionContent、設定とそのCopy to Output DirectoryCopy always(と同じAlways) とCopy if newer(と同じ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).

プロジェクトをビルドするとき、AssemblyAssociatedContentFileAttribute属性は各コンテンツ ファイルのアセンブリのメタデータにコンパイルされます。When the project is built, an AssemblyAssociatedContentFileAttribute attribute is compiled into the metadata of the assembly for each content file.

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

値、AssemblyAssociatedContentFileAttributeプロジェクト内の位置に対して相対的なコンテンツのファイルへのパスを意味します。The value of the AssemblyAssociatedContentFileAttribute implies the path to the content file relative to its position in the project. たとえば、コンテンツ ファイルは、プロジェクトのサブフォルダーにありますが、追加パス情報に組み込む、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")]

AssemblyAssociatedContentFileAttribute値も、ビルド出力フォルダー内のコンテンツのファイルへのパスの値。The AssemblyAssociatedContentFileAttribute value is also the value of the path to the content file in the build output folder.

コンテンツ ファイルの使用Using Content Files

コンテンツ ファイルを読み込むを呼び出すことができます、GetContentStreamのメソッド、Applicationクラス、パックURIURI目的のコンテンツ ファイルを識別します。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 返します、StreamResourceInfoコンテンツ ファイルとして公開するオブジェクト、Streamとそのコンテンツの種類について説明します。GetContentStream returns a StreamResourceInfo object, which exposes the content file as a Stream and describes its content type.

たとえば、次のコードが使用する方法を示しますGetContentStreamを読み込む、Pageファイルのコンテンツし、のコンテンツとして設定する、 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

呼び出し中にGetContentStreamにアクセスすること、 Stream、それを設定 プロパティの型に変換する余分な作業を実行する必要があります。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. 代わりに、させることができますWPFWPF注意を開いたり変換したり、Streamでコードを使用して型のプロパティに直接、リソース ファイルを読み込みます。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.

次の例を読み込む方法を示しています、Pageに直接、 Frame (pageFrame) コードを使用します。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

次の例は、上の例と同じ意味のマークアップです。The following example is the markup equivalent of the preceding example.

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

起点サイト ファイルSite of Origin Files

リソース ファイルで定義されている、共に配布されるアセンブリを使用した明示的な関連付けがある場合、AssemblyAssociatedContentFileAttributeします。Resource files have an explicit relationship with the assemblies that they are distributed alongside, as defined by the AssemblyAssociatedContentFileAttribute. ただし、アセンブリとアプリケーション データ ファイル間に暗黙的な関係を持たせる、または関係を持たせない場合があります。たとえば次のような場合です。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:

  • ファイルは、コンパイル時に存在しません。A file doesn't exist at compile time.

  • アセンブリが必要とするファイルが、実行時までわからない場合。You don't know what files your assembly will require until run time.

  • 関連付けられているアセンブリを再コンパイルせずにファイルを更新可能にする場合。You want to be able to update files without recompiling the assembly that they are associated with.

  • オーディオやビデオなど大容量のデータ ファイルを使用するアプリケーションで、ユーザーが選択した場合にのみファイルをダウンロードする場合。Your application uses large data files, such as audio and video, and you only want users to download them if they choose to.

この種の従来型を使用してファイルをロードすることはURIURIfile:/// 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" />

ただし、file:/// スキームや http:// スキームを使用する場合は、アプリケーションに完全信頼が必要です。However, the file:/// and http:// schemes require your application to have full trust. アプリケーションの場合、XAML ブラウザー アプリケーション (XBAP)XAML browser application (XBAP)がインターネットまたはイントラネットから起動して、圧縮しないファイルは、配信元 (アプリケーションのサイトからのみ読み込むことが、それらの場所から起動するアプリケーションの許可されるアクセス許可のセットのみを要求場所を起動) します。If your application is a 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). このようなファイルと呼びます起点サイトファイル。Such files are known as site of origin files.

起点サイト ファイルは部分信頼アプリケーションの唯一のオプションですが、部分信頼アプリケーション以外でも使用できます。Site of origin files are the only option for partial trust applications, although are not limited to partial trust applications. 完全信頼アプリケーションでも、読み込むアプリケーション データ ファイルがビルド時点では不明な場合があります。完全信頼アプリケーションでは file:/// を使用できますが、アプリケーション データ ファイルがアプリケーション アセンブリと同じフォルダーにインストールされることも、サブフォルダーにインストールされることも考えられます。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. この場合は、起点サイト参照を使用する方が、file:/// を使用するよりも簡単です。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.

注意

ファイルがでキャッシュされません起点サイト、XAML ブラウザー アプリケーション (XBAP)XAML browser application (XBAP)コンテンツ ファイルは、クライアント コンピューター上です。Site of origin files are not cached with an XAML ブラウザー アプリケーション (XBAP)XAML browser application (XBAP) on a client machine, while content files are. したがって、起点サイト ファイルは明確に要求されたときにのみダウンロードされます。Consequently, they are only downloaded when specifically requested. 場合、XAML ブラウザー アプリケーション (XBAP)XAML browser application (XBAP)アプリケーションが大量のメディア ファイル、起点サイト ファイルは、初期のアプリケーションの起動がはるかに高速でありオンデマンド ファイルのダウンロードのみを意味として構成します。If an 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.

起点サイト ファイルの構成Configuring Site of Origin Files

起点サイト ファイルがコンパイル時に存在しないか不明な場合は、従来の展開を使用する必要がありますいずれかの使用など、実行時に、必要なファイルを確保するためのメカニズムが使用可能な、XCopyコマンド ライン プログラム、または、 Microsoft Windows インストーラー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 インストーラーMicrosoft Windows Installer.

それらのファイルを追加することがわかっている場合はコンパイル時にファイルを元のサイトに配置されるような場合は明示的な依存関係をしないように、Microsoft Build Engine (MSBuild)Microsoft build engine (MSBuild)プロジェクトとして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 Microsoft Build Engine (MSBuild)Microsoft build engine (MSBuild) project as None item. コンテンツのファイルで設定する必要がある、 MSBuildMSBuild CopyToOutputDirectory元のファイルのサイトがいずれかを指定することによってビルドされたアセンブリに対応する場所にコピーされていることを指定する属性、Always値またはPreserveNewest値。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>  

注意

Visual StudioVisual Studio、ファイルをプロジェクトの設定を追加して元のファイルのサイトを作成するそのBuild ActionNoneします。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.

プロジェクトのビルド時にMSBuildMSBuildビルド出力フォルダーに、指定されたファイルをコピーします。When the project is built, MSBuildMSBuild copies the specified files to the build output folder.

起点サイト ファイルの使用Using Site of Origin Files

呼び出すことができます、起点サイト ファイルを読み込むには、GetRemoteStreamのメソッド、Applicationクラス、パックURIURI元のファイルの目的のサイトを識別します。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 返します、StreamResourceInfoとしてファイルを配信元のサイトを公開するには、オブジェクト、Streamとそのコンテンツの種類について説明します。GetRemoteStream returns a StreamResourceInfo object, which exposes the site of origin file as a Stream and describes its content type.

たとえば、次のコードが使用する方法を示しますGetRemoteStreamを読み込む、Page起点サイト ファイルし、のコンテンツとして設定、 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

呼び出し中にGetRemoteStreamにアクセスすること、 Stream、それを設定 プロパティの型に変換する余分な作業を実行する必要があります。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. 代わりに、させることができますWPFWPF注意を開いたり変換したり、Streamでコードを使用して型のプロパティに直接、リソース ファイルを読み込みます。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.

次の例を読み込む方法を示しています、Pageに直接、 Frame (pageFrame) コードを使用します。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

次の例は、上の例と同じ意味のマークアップです。The following example is the markup equivalent of the preceding example.

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

ビルドの種類を変更した後のリビルドRebuilding After Changing Build Type

アプリケーション データ ファイルのビルドの種類を変更した後は、変更を確実に反映するためにアプリケーション全体をリビルドする必要があります。After you change the build type of an application data file, you need to rebuild the entire application to ensure those changes are applied. アプリケーションのみをビルドしても、変更は適用されません。If you only build the application, the changes are not applied.

関連項目See also