Übergeben eines URI an die Windows-RuntimePassing a URI to the Windows Runtime

Windows Runtime-Methoden akzeptieren nur absolute URIs.Windows Runtime methods accept only absolute URIs. Wenn Sie einen relativen URI an eine Windows-Runtime Methode übergeben, ArgumentException wird eine Ausnahme ausgelöst.If you pass a relative URI to a Windows Runtime method, an ArgumentException exception is thrown. Der Grund: Wenn Sie die Windows-Runtime in .NET Framework Code verwenden, wird die- Windows.Foundation.Uri Klasse als System.Uri in IntelliSense angezeigt.Here's why: When you use the Windows Runtime in .NET Framework code, the Windows.Foundation.Uri class appears as System.Uri in Intellisense. Die- System.Uri Klasse lässt relative URIs zu, die- Windows.Foundation.Uri Klasse jedoch nicht.The System.Uri class allows relative URIs, but the Windows.Foundation.Uri class does not. Dies gilt auch für Methoden, die Sie in Windows-Runtime Komponenten verfügbar machen.This is also true for methods you expose in Windows Runtime Components. Wenn eine Komponente eine Methode verfügbar macht, die einen URI enthält, enthält die Signatur im Code System.Uri.If your component exposes a method that takes a URI, the signature in your code includes System.Uri. Für Benutzer Ihrer Komponente enthält die Signatur jedoch Windows.Foundation.Uri .However, to users of your component, the signature includes Windows.Foundation.Uri. Ein URI, der an die Komponente übergeben wird, muss ein absoluter URI sein.A URI that is passed to your component must be an absolute URI.

In diesem Thema wird erläutert, wie Sie einen absoluten URI erkennen und einen solchen erstellen, wenn Sie auf eine Ressource im App-Paket verweisen.This topic shows how to detect an absolute URI and how to create one when referring to a resource in the app package.

Erkennen und Verwenden eines absoluten URIsDetecting and using an absolute URI

Verwenden Sie die- Uri.IsAbsoluteUri Eigenschaft, um sicherzustellen, dass ein URI absolut ist, bevor er an den Windows-Runtime übergeben wird.Use the Uri.IsAbsoluteUri property to ensure that a URI is absolute before passing it to the Windows Runtime. Das Verwenden dieser Eigenschaft ist effizienter als das Abfangen und Behandeln der ArgumentException-Ausnahme.Using this property is more efficient than catching and handling the ArgumentException exception.

Verwenden eines absoluten URI für eine Ressource im App-PaketUsing an absolute URI for a resource in the app package

Wenn Sie einen URI für eine Ressource angeben möchten, der im App-Paket enthalten sein soll, können Sie das ms-appx-Schema oder ms-appx-web-Schema verwenden, um einen absoluten URI zu erstellen.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.

Im folgenden Beispiel wird gezeigt, wie die Source -Eigenschaft für ein WebView -Steuerelement und die- Source Eigenschaft für ein- Image Steuerelement mit XAML und Code auf Ressourcen festgelegt werden, die in einem Ordner mit dem Namen "Pages" enthalten sind.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

Weitere Informationen über diese Schemas finden Sie unter URI-Schemas im Windows Developer Center.For more information about these schemes, see URI schemes in the Windows Dev Center.

Siehe auchSee also