Windows ランタイムへの URI の引き渡しPassing a URI to the Windows Runtime

Windows ランタイムのメソッドは絶対 URI だけを受け取ります。Windows Runtime methods accept only absolute URIs. Windows ランタイム メソッドに相対 URI を渡す場合、ArgumentException例外がスローされます。If you pass a relative URI to a Windows Runtime method, an ArgumentException exception is thrown. その理由を説明します.NET Framework のコードで、Windows ランタイムを使用すると、Windows.Foundation.Uriクラスとして表示されますSystem.UriIntellisense にします。Here's why: When you use the Windows Runtime in .NET Framework code, the Windows.Foundation.Uri class appears as System.Uri in Intellisense. System.Uriクラスは、相対 Uri を使用できますが、Windows.Foundation.Uriクラスはありません。The System.Uri class allows relative URIs, but the Windows.Foundation.Uri class does not. またこれは、Windows ランタイム コンポーネントで公開するメソッドに当てはまります。This is also true for methods you expose in Windows Runtime Components. URI を受け取るメソッドをコンポーネントで公開する場合、コードのシグネチャには System.Uri が含まれます。If your component exposes a method that takes a URI, the signature in your code includes System.Uri. ただし、コンポーネントのユーザーに、署名はWindows.Foundation.Uriします。However, to users of your component, the signature includes Windows.Foundation.Uri. コンポーネントに渡す URI は、絶対 URI でなければなりません。A URI that is passed to your component must be an absolute URI.

このトピックでは、絶対 URI を検出する方法と、アプリ パッケージ内のリソースを参照するときに絶対 URI を作成する方法を説明します。This topic shows how to detect an absolute URI and how to create one when referring to a resource in the app package.

絶対 URI の検出と使用Detecting and using an absolute URI

使用して、Uri.IsAbsoluteUriプロパティを Windows ランタイムに渡す前に、URI が絶対であることを確認します。Use the Uri.IsAbsoluteUri property to ensure that a URI is absolute before passing it to the Windows Runtime. このプロパティを使用する方が、ArgumentException 例外をキャッチして処理するより効率的です。Using this property is more efficient than catching and handling the ArgumentException exception.

アプリ パッケージのリソースに対する絶対 URI の使用Using an absolute URI for a resource in the app package

アプリのパッケージに含まれるリソースに対して URI を指定するには、ms-appx スキームまたは ms-appx-web スキームを使用して絶対 URI を作成します。If you want to specify a URI for a resource that your app package contains, you can use the ms-appx or ms-appx-web scheme to create an absolute URI.

次の例は、設定する方法を示します、SourceプロパティをWebViewコントロールとSourceプロパティをImageXAML とコードの両方を使用して、ページをという名前のフォルダーに格納されているリソースへの制御。The following example shows how to set the Source property for a WebView control and the Source property for an Image control to resources that are contained in a folder named Pages, using both XAML and code.

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <WebView Name="webview1" HorizontalAlignment="Center" Height="222"  
             VerticalAlignment="Top" Width="310" Margin="472,57,553,0"
             Source="ms-appx-web:///Pages/HTMLPage1.html"/>
    <Button Content="Button" HorizontalAlignment="Left" Margin="322,185,0,0" 
            VerticalAlignment="Top" Click="Button_Click_1"/>
<Image HorizontalAlignment="Left" Height="100" Margin="208,123,0,0" VerticalAlignment="Top" 
           Width="100" Source="ms-appx:///Pages/weather.jpg" />

</Grid>
private void Button_Click_1(object sender, RoutedEventArgs e)
{
    webview1.Source = new Uri("ms-appx-web:///Pages/HTMLPage2.html", UriKind.Absolute);
}
Private Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
    webview1.Source = New Uri("ms-appx-web:///Pages/HTMLPage2.html", UriKind.Absolute)
End Sub

これらのスキームの詳細については、次を参照してください。 URI スキーム、Windows デベロッパー センターでします。For more information about these schemes, see URI schemes in the Windows Dev Center.

関連項目See also