Aplicaciones de Windows
Collapse the table of content
Expand the table of content
Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés
Información
El tema que ha solicitado se muestra abajo. Sin embargo, este tema no se encuentra en la biblioteca.

Pasar un URI a Windows Runtime

.NET Framework (current version)
 

Publicado: octubre de 2016

Los métodos de Windows Runtime solo aceptan URI absolutos. Si se pasa un URI relativo a un método Windows en tiempo de ejecución, se produce una excepción ArgumentException. El motivo es el siguiente: cuando se usa Windows en tiempo de ejecución en el código de .NET Framework, la clase Windows.Foundation.Uri aparece como System.Uri en Intellisense. La clase System.Uri permite URI relativos, pero la clase Windows.Foundation.Uri no. Esto también ocurre con los métodos que usted expone en componentes de Windows en tiempo de ejecución. Si su componente expone un método que toma un URI, la firma de su código incluye System.Uri. Sin embargo, para los usuarios del componente, la firma incluye Windows.Foundation.Uri. Un URI que se pase a su componente debe ser absoluto.

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.

Use la propiedad Uri.IsAbsoluteUri para asegurarse de que un URI sea absoluto antes de pasarlo a Windows en tiempo de ejecución. Utilizar esta propiedad es más eficaz que detectar y gestionar la excepción ArgumentException.

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.

En el ejemplo siguiente se muestra cómo establecer la propiedad Source de un control WebView y la propiedad Source de un control Image en recursos incluidos en una carpeta denominada "Pages", usando para ello XAML y código.

   <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);
}

Para obtener más información sobre estos esquemas, consulte Esquemas de URI en el Centro de desarrollo de Windows.

Mostrar:
© 2016 Microsoft