Passando um URI para o Windows RuntimePassing a URI to the Windows Runtime

Os métodos de Tempo de Execução do Windows só aceitam URIs absolutos.Windows Runtime methods accept only absolute URIs. Se você passar um URI relativo a um método de tempo de execução do Windows, um ArgumentException exceção é lançada.If you pass a relative URI to a Windows Runtime method, an ArgumentException exception is thrown. Eis o porquê: Quando você usa o tempo de execução do Windows no código do .NET Framework, o Windows.Foundation.Uri classe aparece como System.Uri no 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. O System.Uri classe permite que os URIs relativos, mas o Windows.Foundation.Uri classe não faz.The System.Uri class allows relative URIs, but the Windows.Foundation.Uri class does not. Isso também é verdadeiro para métodos expostos nos componentes de tempo de execução do Windows.This is also true for methods you expose in Windows Runtime Components. Se seu componente expõe um método que usa um URI, a assinatura presente no código inclui System.Uri.If your component exposes a method that takes a URI, the signature in your code includes System.Uri. No entanto, para os usuários do seu componente, a assinatura inclui Windows.Foundation.Uri.However, to users of your component, the signature includes Windows.Foundation.Uri. Os URIs enviados aos seus componentes devem ser absolutos.A URI that is passed to your component must be an absolute URI.

Este tópico mostra como detectar URIs absolutos e como criar um URI desse tipo ao fazer referência a um recurso do pacote do aplicativo.This topic shows how to detect an absolute URI and how to create one when referring to a resource in the app package.

Detectando e usando um URI absolutoDetecting and using an absolute URI

Use o Uri.IsAbsoluteUri propriedade para garantir que o URI é absoluto antes de passá-lo para o tempo de execução do Windows.Use the Uri.IsAbsoluteUri property to ensure that a URI is absolute before passing it to the Windows Runtime. Usar essa propriedade é mais eficiente do que identificar e tratar a exceção ArgumentException.Using this property is more efficient than catching and handling the ArgumentException exception.

Usando um URI absoluto para um recurso no pacote do aplicativoUsing an absolute URI for a resource in the app package

Se quiser especificar um URI para um recurso presente no pacote do aplicativo, você pode usar o esquema ms-appx ou ms-appx-web para criar um 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.

O exemplo a seguir mostra como definir a Source propriedade para um WebView controle e o Source propriedade para um Image controle aos recursos que estão contidos em uma pasta chamada páginas usando XAML e 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 obter mais informações sobre esses esquemas, consulte esquemas URI no Centro de desenvolvimento do Windows.For more information about these schemes, see URI schemes in the Windows Dev Center.

Consulte tambémSee also