Pasar un URI a Windows RuntimePassing a URI to the Windows Runtime

Los métodos de Windows Runtime solo aceptan URI absolutos.Windows Runtime methods accept only absolute URIs. Si pasa un URI relativo a un método Windows Runtime, ArgumentException se produce una excepción.If you pass a relative URI to a Windows Runtime method, an ArgumentException exception is thrown. Este es el motivo: cuando se usa el Windows Runtime en .NET Framework código, la Windows.Foundation.Uri clase aparece como System.Uri en 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 clase permite los URI relativos, pero la Windows.Foundation.Uri clase no.The System.Uri class allows relative URIs, but the Windows.Foundation.Uri class does not. Esto también se aplica a los métodos que se exponen en Windows Runtime componentes.This is also true for methods you expose in Windows Runtime Components. Si su componente expone un método que toma un URI, la firma de su código incluye System.Uri.If your component exposes a method that takes a URI, the signature in your code includes System.Uri. Sin embargo, para los usuarios del componente, la firma incluye Windows.Foundation.Uri .However, to users of your component, the signature includes Windows.Foundation.Uri. Un URI que se pase a su componente debe ser absoluto.A URI that is passed to your component must be an absolute URI.

En este tema se muestra cómo detectar un URI absoluto y cómo crear uno al hacer referencia a un recurso del paquete de la aplicación.This topic shows how to detect an absolute URI and how to create one when referring to a resource in the app package.

Detectar y usar un URI absolutoDetecting and using an absolute URI

Utilice la Uri.IsAbsoluteUri propiedad para asegurarse de que un URI sea absoluto antes de pasarlo a la Windows Runtime.Use the Uri.IsAbsoluteUri property to ensure that a URI is absolute before passing it to the Windows Runtime. Utilizar esta propiedad es más eficaz que detectar y gestionar la excepción ArgumentException.Using this property is more efficient than catching and handling the ArgumentException exception.

Usar un URI absoluto para un recurso del paquete de la aplicaciónUsing an absolute URI for a resource in the app package

Si desea especificar un URI para un recurso incluido en el paquete de la aplicación, puede usar los esquemas ms-appx o ms-appx-web para crear un URI absoluto.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.

En el ejemplo siguiente se muestra cómo establecer la Source propiedad de un WebView control y la Source propiedad de un Image control en los recursos incluidos en una carpeta denominada pages, mediante XAML y código.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

Para obtener más información sobre estos esquemas, consulte Esquemas de URI en el Centro de desarrollo de Windows.For more information about these schemes, see URI schemes in the Windows Dev Center.

Consulte tambiénSee also