Passaggio di un URI a Windows RuntimePassing a URI to the Windows Runtime

I metodi di Windows Runtime accettano solo URI assoluti.Windows Runtime methods accept only absolute URIs. Se si passa un URI relativo a un metodo di Windows Runtime, ArgumentException viene generata un'eccezione.If you pass a relative URI to a Windows Runtime method, an ArgumentException exception is thrown. Ecco perché: quando si usa il Windows Runtime nel codice .NET Framework, la Windows.Foundation.Uri classe viene visualizzata come System.Uri in IntelliSense.Here's why: When you use the Windows Runtime in .NET Framework code, the Windows.Foundation.Uri class appears as System.Uri in Intellisense. La System.Uri classe consente gli URI relativi, ma Windows.Foundation.Uri non la classe.The System.Uri class allows relative URIs, but the Windows.Foundation.Uri class does not. Questo vale anche per i metodi esposti nei componenti Windows Runtime.This is also true for methods you expose in Windows Runtime Components. Se il componente espone un metodo che accetta un URI, la firma nel codice include System.Uri.If your component exposes a method that takes a URI, the signature in your code includes System.Uri. Tuttavia, per gli utenti del componente, la firma include Windows.Foundation.Uri .However, to users of your component, the signature includes Windows.Foundation.Uri. Un URI che viene passato al componente deve essere un URI assoluto.A URI that is passed to your component must be an absolute URI.

In questo argomento viene illustrato come rilevare un URI assoluto e come crearne uno quando si fa riferimento a una risorsa nel pacchetto dell'app.This topic shows how to detect an absolute URI and how to create one when referring to a resource in the app package.

Rilevamento e utilizzo di un URI assolutoDetecting and using an absolute URI

Utilizzare la Uri.IsAbsoluteUri proprietà per verificare che un URI sia assoluto prima di passarlo al Windows Runtime.Use the Uri.IsAbsoluteUri property to ensure that a URI is absolute before passing it to the Windows Runtime. È consigliabile usare questa proprietà anziché ricevere l'eccezione ArgumentException e gestirla.Using this property is more efficient than catching and handling the ArgumentException exception.

Uso di un URI assoluto per una risorsa nel pacchetto dell'appUsing an absolute URI for a resource in the app package

Se si vuole specificare un URI per una risorsa contenuta nel pacchetto dell'app, è possibile usare lo schema ms-appx o ms-appx-web per creare un URI assoluto.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.

Nell'esempio seguente viene illustrato come impostare la Source proprietà di un WebView controllo e la Source proprietà di un Image controllo su risorse contenute in una cartella denominata Pages, utilizzando XAML e il codice.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

Per altre informazioni su questi schemi, vedere Schemi URI nel Centro sviluppatori Windows.For more information about these schemes, see URI schemes in the Windows Dev Center.

Vedere ancheSee also