Compartilhar via


WebView Classe

Definição

Fornece um controle que hospeda conteúdo HTML em um aplicativo.

public ref class WebView sealed : FrameworkElement
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Xaml.Controls.IWebViewFactory4, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class WebView final : FrameworkElement
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Xaml.Controls.IWebViewFactory4, 65536, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class WebView final : FrameworkElement
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Xaml.Controls.IWebViewFactory4), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class WebView : FrameworkElement
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Xaml.Controls.IWebViewFactory4), 65536, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class WebView : FrameworkElement
Public NotInheritable Class WebView
Inherits FrameworkElement
<WebView .../>
Herança
Object Platform::Object IInspectable DependencyObject UIElement FrameworkElement WebView
Atributos

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)

Exemplos

Dica

Para obter mais informações, diretrizes de design e exemplos de código, consulte Exibição da Web.

Se você tiver o aplicativo Galeria do WinUI 2 instalado, clique aqui para abrir o aplicativo e ver o WebView em ação.

O exemplo de código a seguir demonstra como navegar um WebView para um URI contido em um TextBox chamado Address.

try
{
    Uri targetUri = new Uri(Address.Text);
    webViewA.Navigate(targetUri);
}
catch (FormatException ex)
{
    // Bad address.
}

O exemplo de código a seguir demonstra como carregar HTML local em um controle WebView.

webViewB.NavigateToString(
    "<html><body><h2>This is an HTML fragment</h2></body></html>");

Comentários

Use o controle WebView para hospedar conteúdo da Web em seu aplicativo. Os aplicativos para Surface Hub ou Xbox devem usar este WebView.

Importante

Para aplicativos da área de trabalho, recomendamos que você use o controle WebView2 , que está disponível como parte da Biblioteca de Interface do Usuário do Windows 2 para UWP (WinUI 2). O WebView2 usa o Microsoft Edge (Chromium) como o mecanismo de renderização para exibir conteúdo da Web em aplicativos. Para obter mais informações, consulte Introdução ao Microsoft Edge WebView2, Introdução ao WebView2 em aplicativos WinUI 2 (UWP) e WebView2 na referência da API do WinUI.

Importante

Ilhas XAML: não há suporte para esse controle em aplicativos de Ilhas XAML. Para obter alternativas, consulte Ilhas XAML – controles de exibição da Web.

WebView não é uma subclasse Control e, portanto, não tem um modelo de controle. Você pode definir várias propriedades para controlar alguns aspectos visuais do WebView. A área de exibição é restrita pelas propriedades Width e Height . Para traduzir, dimensionar, distorcer e girar um WebView, use a propriedade RenderTransform . Para controlar a opacidade do WebView, defina a propriedade Opacity . Para especificar uma cor para usar como a tela de fundo da página da Web quando o conteúdo HTML não especificar uma cor, defina a propriedade DefaultBackgroundColor.

Você pode obter o título do documento HTML atualmente exibido no WebView usando a propriedade DocumentTitle .

Embora o WebView não seja uma subclasse control , ele receberá o foco de entrada do teclado e participará da sequência de guias. Ele fornece um método Focus, e eventos GotFocus e LostFocus, mas não tem nenhuma propriedade relacionada a guias. Sua posição na sequência de tabulação é a mesma que sua posição na ordem do documento de XAML. A sequência de guias inclui todos os elementos no conteúdo do WebView que podem receber o foco de entrada.

Conforme indicado na tabela Eventos, o WebView não dá suporte à maioria dos eventos de entrada do usuário herdados de UIElement, como KeyDown, KeyUp e PointerPressed. Uma solução alternativa comum é usar InvokeScriptAsync com a função de avaliação JavaScript para usar os manipuladores de eventos HTML e usar window.external.notify do manipulador de eventos HTML para notificar o aplicativo usando WebView.ScriptNotify.

Em aplicativos compilados para Windows 10, o WebView usa o mecanismo de renderização do Microsoft Edge para exibir conteúdo HTML. Em aplicativos compilados para Windows 8 ou Windows 8.1, o WebView usa a Internet Explorer 11 no modo de documento. Ele não dá suporte a controles ou plug-ins do Microsoft ActiveX, como o Microsoft Silverlight ou arquivos PDF (Portable Document Format).

O WebView fornece várias API para navegação básica: GoBack, GoForward, Stop, Refresh, CanGoBack e CanGoForward. Você pode usá-los para adicionar recursos típicos de navegação na Web a seu aplicativo.

Para definir o conteúdo inicial do WebView, defina a propriedade Source em XAML. O analisador XAML converte automaticamente a cadeia de caracteres para um URI.

<!-- Source file is on the web. -->
<WebView x:Name="webViewA" Source="http://www.contoso.com"/>

<!-- Source file is in local storage. -->
<WebView x:Name="webViewB" Source="ms-appdata:///local/intro/welcome.html"/>

<!-- Source file is in the app package. -->
<WebView x:Name="webViewC" Source="ms-appx-web:///help/about.html"/>

A propriedade Source pode ser definida no código, mas, em vez de fazer isso, você normalmente usa um dos métodos Navigate para carregar conteúdo no código.

Para carregar o conteúdo da Web, use o método Navigate com um Uri que usa o esquema http ou https .

webViewA.Navigate(new Uri("http://www.contoso.com"));

Para navegar até um URI (Uniform Resource Identifier) com uma solicitação POST e cabeçalhos HTTP, use o método NavigateWithHttpRequestMessage . Esse método dá suporte apenas a HttpMethod.Post e HttpMethod.Get para o valor da propriedade HttpRequestMessage.Method.

Para carregar o conteúdo descompactado e não criptografado do armazenamento de dados LocalFolder ou TemporaryFolder de seu aplicativo, use o método Navigate com um URI que usa o esquema ms-appdata. O suporte do WebView para esse esquema exige que você coloque seu conteúdo em uma subpasta na pasta local ou temporária. Isso permite a navegação para o URI (Uniform Resource Identifier), como oarquivo ms-appdata:///local/ folder/.html e oarquivo ms-appdata:///temp/ folder/.html. (Para carregar arquivos compactados ou criptografados, confira NavigateToLocalStreamUri).

Cada uma dessas subpastas de primeiro nível é isolada do conteúdo em outras subpastas de primeiro nível. Por exemplo, você pode navegar para ms-appdata:///temp/folder1/file.html, mas não pode ter um link nesse arquivo para ms-appdata:///temp/folder2/file.html. No entanto, você ainda pode vincular ao conteúdo HTML no pacote do aplicativo usando o esquema ms-appx-web e ao conteúdo da Web usando os esquemashttp e https uniform resource identifier (URI).

webViewA.Navigate(new Uri("ms-appdata:///local/intro/welcome.html"));

Para carregar o conteúdo do pacote do aplicativo, use o método Navigate com um URI que usa o esquema ms-appx-web.

webViewA.Navigate(new Uri("ms-appx-web:///help/about.html"));

Você pode carregar o conteúdo local por meio de uma resolução personalizada usando o método NavigateToLocalStreamUri. Isso possibilita cenários avançados, como download e armazenamento em cache de conteúdo baseado na Web para uso offline ou extração de conteúdo de um arquivo compactado.

Respondendo a eventos de navegação

O WebView fornece vários eventos que você pode usar para responder aos estados de navegação e carregamento de conteúdo. Os eventos ocorrem na seguinte ordem para o conteúdo raiz do WebView:

webViewA.NavigationStarting += webViewA_NavigationStarting;

private void webViewA_NavigationStarting(object sender, WebViewNavigationStartingEventArgs args)
{
    // Cancel navigation if URL is not allowed. (Implemetation of IsAllowedUri not shown.)
    if (!IsAllowedUri(args.Uri))
        args.Cancel = true;
}
  • ContentLoading – ocorre quando o WebView começou a carregar novos conteúdos.
webViewA.ContentLoading += webViewA_ContentLoading;

private void webViewA_ContentLoading(WebView sender, WebViewContentLoadingEventArgs args)
{
    // Show status.
    if (args.Uri != null)
    {
        statusTextBlock.Text = "Loading content for " + args.Uri.ToString();
    }
}
  • DOMContentLoaded - Ocorre quando o WebView termina de analisar o conteúdo HTML atual.
webViewA.DOMContentLoaded += webViewA_DOMContentLoaded;

private void webViewA_DOMContentLoaded(WebView sender, WebViewDOMContentLoadedEventArgs args)
{
    // Show status.
    if (args.Uri != null)
    {
        statusTextBlock.Text = "Content for " + args.Uri.ToString() + " has finished loading";
    }
}
webViewA.NavigationCompleted += webViewA_NavigationCompleted;

private void webViewA_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
{
    if (args.IsSuccess == true)
    {
        statusTextBlock.Text = "Navigation to " + args.Uri.ToString() + " completed successfully.";
    }
    else
    {
        statusTextBlock.Text = "Navigation to: " + args.Uri.ToString() +
                               " failed with error " + args.WebErrorStatus.ToString();
    }
}

Eventos semelhantes ocorrem na mesma ordem para cada iframe no conteúdo do WebView:

Respondendo a possíveis problemas

Você pode responder a possíveis problemas com o conteúdo, como scripts de execução prolongada, conteúdo que o WebView não pode carregar e avisos de conteúdo não seguro.

Seu aplicativo pode parecer sem resposta durante a execução de scripts. O evento LongRunningScriptDetected ocorre periodicamente enquanto o WebView executa JavaScript e oferece uma oportunidade de interromper o script. Para determinar por quanto tempo o script foi executado, verifique a propriedade ExecutionTime de WebViewLongRunningScriptDetectedEventArgs. Para interromper o script, defina a propriedade StopPageScriptExecution dos argumentos do evento como true. O script interrompido não será executado novamente, a menos que seja recarregado durante uma navegação webview subsequente.

O controle WebView não pode hospedar tipos de arquivo arbitrários. Quando é feita uma tentativa de carregar o conteúdo que o WebView não pode hospedar, o evento UnviewableContentIdentified ocorre. Você pode manipular esse evento e notificar o usuário ou usar a classe Launcher para redirecionar o arquivo para um navegador externo ou de outro aplicativo.

Da mesma forma, o evento UnsupportedUriSchemeIdentified ocorre quando um esquema de URI (Uniform Resource Identifier) sem suporte é invocado no conteúdo da Web, como fbconnect:// ou mailto://. Você pode manipular esse evento para fornecer comportamento personalizado em vez de permitir que o inicializador de sistema padrão inicie o URI (Uniform Resource Identifier).

O evento UnsafeContentWarningDisplaying ocorre quando o WebView mostra uma página de aviso para conteúdo que foi relatado como não seguro pelo Filtro SmartScreen. Se o usuário optar por continuar a navegação, a navegação subsequente para a página não exibirá o aviso nem vai disparar o evento.

Tratamento de casos especiais para conteúdo do WebView

Você pode usar a propriedade ContainsFullScreenElement e o evento ContainsFullScreenElementChanged para detectar, responder e habilitar experiências de tela inteira no conteúdo da Web, por exemplo, na reprodução de vídeo em tela inteira. Por exemplo, você pode usar o evento ContainsFullScreenElementChanged para redimensionar o WebView para ocupar toda a exibição do aplicativo ou, como ilustra o exemplo a seguir, colocar um aplicativo em janelas no modo de tela inteira quando uma experiência da Web em tela inteira for desejada.

// Assume webView is defined in XAML
webView.ContainsFullScreenElementChanged += webView_ContainsFullScreenElementChanged;

private void webView_ContainsFullScreenElementChanged(WebView sender, object args)
{
    var applicationView = ApplicationView.GetForCurrentView();

    if (sender.ContainsFullScreenElement)
    {
        applicationView.TryEnterFullScreenMode();
    }
    else if (applicationView.IsFullScreenMode)
    {
        applicationView.ExitFullScreenMode();
    }
}

Você pode usar o evento NewWindowRequested para tratar casos em que o conteúdo da Web hospedado solicita uma nova janela para ser exibido, como uma janela pop-up. Você pode usar outro controle WebView para exibir o conteúdo da janela solicitada.

Use o evento PermissionRequested para habilitar os recursos da Web que exigem recursos especiais. Atualmente, isso inclui localização geográfica, armazenamento IndexedDB e áudio e vídeo do usuário (por exemplo, de um microfone ou webcam). Se seu aplicativo acessar a localização ou mídia do usuário, você ainda precisará declarar essa funcionalidade no manifesto do aplicativo. Por exemplo, um aplicativo que usa a localização geográfica precisa no mínimo das seguintes declarações de funcionalidade no Package.appxmanifest:

<Capabilities>
  <Capability Name="internetClient"/>
  <DeviceCapability Name="location"/>
</Capabilities>

Além da manipulação do evento PermissionRequested pelo aplicativo, o usuário terá que aprovar caixas de diálogo do sistema padrão para aplicativos que solicitam recursos de mídia ou localização para que esses recursos sejam habilitados.

Aqui está um exemplo de como um aplicativo permitiria a localização geográfica em um mapa do Bing:

// Assume webView is defined in XAML
webView.PermissionRequested += webView_PermissionRequested;

private void webView_PermissionRequested(WebView sender, WebViewPermissionRequestedEventArgs args)
{
    if (args.PermissionRequest.PermissionType == WebViewPermissionType.Geolocation &&
        args.PermissionRequest.Uri.Host == "www.bing.com")
    {
        args.PermissionRequest.Allow();
    }
}

Se o aplicativo exigir entrada do usuário ou outras operações assíncronas para responder a uma solicitação de permissão, use o método Defer de WebViewPermissionRequest para criar um WebViewDeferredPermissionRequest que pode ser tratado em um momento posterior. Confira WebViewPermissionRequest.Defer.

Se os usuários precisarem fazer logoff com segurança de um site hospedado no WebView ou em outros casos em que a segurança for importante, chame o método estático ClearTemporaryWebDataAsync para limpar todo o conteúdo armazenado em cache localmente de uma sessão do WebView. Isso impede que usuários mal-intencionados acessem dados confidenciais.

Interagindo com o conteúdo do WebView

Você pode interagir com o conteúdo do WebView usando o método InvokeScriptAsync para invocar ou injetar script no conteúdo do WebView e o evento ScriptNotify para obter informações do conteúdo do WebView.

Para invocar o JavaScript dentro do conteúdo do WebView, use o método InvokeScriptAsync . O script chamado pode retornar apenas os valores de cadeia de caracteres.

Por exemplo, se o conteúdo de um WebView chamado webViewA contiver uma função chamada setDate que usa três parâmetros, você poderá invocá-lo assim.

string[] args = {"January", "1", "2000"};
string returnValue = await webViewA.InvokeScriptAsync("setDate", args);

Você pode usar o InvokeScriptAsync com a função do JavaScript eval para inserir conteúdo na página da Web.

Aqui, o texto de uma Caixa de Texto XAML (nameTextBox.Text) é gravado em um div em uma página HTML hospedada em webViewA.

private async void Button_Click(object sender, RoutedEventArgs e)
{
    string functionString = String.Format("document.getElementById('nameDiv').innerText = 'Hello, {0}';", nameTextBox.Text);
    await webViewA.InvokeScriptAsync("eval", new string[] { functionString });
}

Os scripts no conteúdo do WebView podem usar window.external.notify com um parâmetro de cadeia de caracteres para enviar informações de volta ao seu aplicativo. Para receber essas mensagens, manipule o evento ScriptNotify.

Para habilitar uma página da Web externa para disparar o evento ScriptNotify ao chamar window.external.notify, você deve incluir o URI (Uniform Resource Identifier) da página na seção ApplicationContentUriRules do manifesto do aplicativo. (Você pode fazer isso no Microsoft Visual Studio na guia URIs de Conteúdo do designer Package.appxmanifest.) Os URIs nesta lista devem usar HTTPS e podem conter curingas de subdomínio (por exemplo, https://.microsoft.com), mas não podem conter curingas de domínio (por exemplo, https://.com e https://.). O requisito de manifesto não se aplica ao conteúdo que se origina no pacote do aplicativo, que usa um URI ms-local-stream:// ou que seja carregado usando o método NavigateToString.

Acessando o Windows Runtime no WebView

A partir do Windows 10, você pode usar o método AddWebAllowedObject para injetar uma instância de uma classe nativa de um componente Windows Runtime no contexto JavaScript do WebView. Isso permite acesso total aos métodos, propriedades e eventos nativos desse objeto no conteúdo JavaScript desse WebView. A classe deve ser decorada com o atributo AllowForWeb.

Por exemplo, esse código injeta uma instância de MyClass importação de um componente Windows Runtime no WebView.

private void webView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
{
    if (args.Uri.Host == "www.contoso.com")
    {
        webView.AddWebAllowedObject("nativeObject", new MyClass());
    }
}

Para obter mais informações, confira WebView.AddWebAllowedObject.

Além disso, o conteúdo confiável do JavaScript no WebView pode ter permissão para acessar diretamente o Windows RuntimeAPI. Isso fornece recursos nativos avançados para aplicativos Web hospedados no WebView. Para habilitar esse recurso, o URI (Uniform Resource Identifier) para conteúdo confiável deve ser adicionado à lista de permitidos no ApplicationContentUriRules do aplicativo em Package.appxmanifest, com WindowsRuntimeAccess definido especificamente como "all".

Este exemplo mostra uma seção do manifesto do aplicativo. Aqui, um URI (Uniform Resource Identifier) local recebe acesso ao Windows Runtime.

<Applications>
  <Application Id="App"
    ...

    <uap:ApplicationContentUriRules>
      <uap:Rule Match="ms-appx-web:///Web/App.html" WindowsRuntimeAccess="all" Type="include"/>
    </uap:ApplicationContentUriRules>
  </Application>
</Applications>

Opções de hospedagem do conteúdo da Web

A partir do Windows 10, você pode usar a propriedade WebView.Settings (do tipo WebViewSettings) para controlar se JavaScript e IndexedDB estão habilitados. Por exemplo, se você usar o WebView para exibir conteúdo estritamente estático, convém desabilitar o JavaScript para obter o melhor desempenho.

Capturando conteúdo do WebView

Para habilitar o compartilhamento de conteúdo do WebView com outros aplicativos, use o método CaptureSelectedContentToDataPackageAsync , que retorna o conteúdo selecionado como um DataPackage. Esse método é assíncrono, então você deve usar um adiamento para impedir que seu manipulador de evento DataRequested retorne antes da chamada assíncrona ser concluída.

Para obter uma imagem prévia do conteúdo atual do WebView, use o método CapturePreviewToStreamAsync . Esse método cria uma imagem do conteúdo atual e grava o fluxo especificado.

Modos de execução

Por padrão, o conteúdo do WebView é hospedado no thread da interface do usuário em dispositivos na família de dispositivos da área de trabalho e fora do thread da interface do usuário em todos os outros dispositivos. Você pode usar a propriedade estática WebView.DefaultExecutionMode para consultar o comportamento de threading padrão para o cliente atual. Se necessário, você pode usar o construtor WebView(WebViewExecutionMode) para substituir esse comportamento.

Os valores de WebViewExecutionMode com suporte são:

  • SameThread – o conteúdo do WebView é hospedado no Thread da interface do usuário.
  • SeparateThread – o conteúdo do WebView é hospedado em um thread separado fora do thread da interface do usuário.
  • SeparateProcess – (Windows 10, versão 1803 ou posterior) O conteúdo do WebView é hospedado em um processo separado fora do processo do aplicativo. Todas as instâncias do WebView de um aplicativo compartilham o mesmo processo separado, não há um processo separado por instância do WebView.

Ao executar em um processo separado, o WebView exibe duas diferenças de comportamento:

  • O processo do WebView pode ser encerrado. Você pode ser notificado sobre isso ouvindo o evento SeparateProcessLost .
  • O processo do WebView pode rejeitar de forma assíncrona o foco do teclado. Nesse caso, o método WebView.Focus retorna true e, em seguida, imediatamente (mas de forma assíncrona), o foco se afasta do WebView. (Outras maneiras de mover o foco se comportam da mesma forma, como FocusManager.TryMoveFocus.) Você pode acompanhar isso mais explicitamente usando as APIs FocusManager.TryFocusAsync ou FocusManager.TryMoveFocusAsync .

Este exemplo demonstra como criar um controle WebView executado em um processo separado do aplicativo host e será recriado se o processo separado for perdido.

<Grid>
    <Border x:Name="WebViewBorder" Loaded="WebViewBorder_Loaded" />
</Grid>
    ...

public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();

        var webView = new WebView(WebViewExecutionMode.SeparateProcess);
        WebViewBorder.Child = webView;;

        InitializeWebView(webView);
    }

    void InitializeWebView(WebView webView)
    {
        webView.Source = this.WebViewSourceUri;

        webView.SeparateProcessLost += (sender, e) =>
        {
            var newWebView = new WebView(WebViewExecutionMode.SeparateProcess);
            InitializeWebView(newWebView);
            WebViewBorder.Child = newWebView;
        };
    }
}

Observação

Pode haver problemas de desempenho ao hospedar conteúdo no thread da interface do usuário em dispositivos móveis, portanto, certifique-se de testar em todos os dispositivos de destino quando você alterar DefaultExecutionMode.

Um WebView que hospeda o conteúdo do thread da interface do usuário não é compatível com controles pai que exigem gestos para propagar do controle WebView para o pai, como FlipView, ScrollViewer e outros controles relacionados. Esses controles não poderão receber gestos iniciados no WebView fora do thread. Além disso, a impressão de conteúdo da Web fora do thread não tem suporte diretamente. Você deve imprimir um elemento com o WebViewBrush preenchido.

Comportamento de foco para WebView em um processo separado

Seja em execução no processo do aplicativo ou em um processo separado, você pode definir o foco em um WebView chamando o método WebView.Focus. Isso é equivalente aos métodos Control.Focus e Hyperlink.Focus (observe que o WebView não deriva de Control).

Da mesma forma, vários métodos na classe FocusManager podem afetar um WebView (ou Control ou Hyperlink): TryMoveFocus, FindNextFocusableElement, FindLastFocusableElement e GetFocusedElement. Por exemplo, TryMoveFocus move o foco para um WebView e GetFocusedElement retorna um WebView que tem foco.

Por fim, mover o foco de ou para um WebView gera eventos de foco, tanto no próprio WebView quanto no elemento que perde ou recebe o foco. Os eventos são LosingFocus, LostFocus, GettingFocus e GotFocus. Por exemplo, quando o foco passa de um Controle para um WebView, o Controle gerará eventos LosingFocus e LostFocus, e o WebView gerará eventos GettingFocus e GotFocus.

Quando um WebView está em execução em um processo separado, o comportamento dessas APIs muda ligeiramente. Supondo que o WebView seja focalizável, o método WebView.Focus retornará true (êxito), mas o foco ainda não foi movido. O mesmo será verdadeiro se, em vez do método WebView.Focus, FocusManager.TryMoveFocus for chamado e identificar um WebView como o próximo elemento focalizável.

As diferenças de comportamento são:

  • FocusManager.GetFocusedElement não retorna o WebView, a menos que a operação assíncrona seja concluída.
  • O controle que está perdendo o foco receberá seu evento LosingFocus de forma síncrona; no entanto, ele não receberá LostFocus, a menos que a operação assíncrona seja concluída.
  • Da mesma forma, o evento GettingFocus ocorrerá no WebView de forma síncrona; no entanto, o evento GotFocus não será acionado, a menos que a operação assíncrona seja concluída.

Nada disso mudará se você chamar FocusManager.TryFocusAsync. No entanto, o método assíncrono oferece a oportunidade de determinar se a alteração de foco foi bem-sucedida.

Chamar FocusManager.TryMoveFocusAsync em um elemento diferente de um WebView em um processo separado será concluído de forma síncrona.

Este exemplo demonstra como mover o foco para o próximo elemento lógico, mas se isso falhar, restaure o foco para seu local inicial.

async void MoveFocus(WebView webView))
{
    FocusMovementResult result;
    result = await FocusManager.TryFocusAsync(webView, FocusState.Programmatic);
    if (!result.Succeeded)
    {
        // Reset focus to the starting position
        this.Focus(FocusState.Programmatic);
    }
}

Uso de Alerta

Se uma página da Web hospedada em um WebView usar a função de Alerta JavaScript, ela não será exibida. Isso é por design para todas as versões do WebView.

Talvez você consiga interceptar as informações exibidas por um Alerta e fazer o que quiser com ele no aplicativo host. Se isso é possível depende de como a página é gravada e se você tem controle dela. Há um exemplo disponível que demonstra uma técnica possível para fazer isso. O exemplo é escrito para Windows 8.1 e Windows Phone 8.1, mas também funcionará para aplicativos que usam o Plataforma Universal do Windows (UWP). No entanto, isso pode não funcionar para todos os cenários.

Como interceptar o alerta javaScript no WebView no exemplo de aplicativos Universais do Windows

Observações para versões anteriores

Windows 8.1

As seguintes APIs WebView foram preteridas no Windows 8.1:

Somente no Windows, você pode manipular o evento UnsafeContentWarningDisplaying . Esse evento ocorre quando o WebView mostra uma página de aviso para conteúdo que foi relatado como não seguro pelo Filtro SmartScreen. Se o usuário optar por continuar a navegação, a navegação subsequente para a página não exibirá o aviso nem vai disparar o evento. Esse evento não é implementado para Windows Phone.

Quando você invoca JavaScript dentro do WebView chamando o método InvokeScriptAsync , não há suporte para funções que exigem uma janela secundária, como Alerta.

Windows Phone 8

O evento UnsafeContentWarningDisplaying não é implementado para Windows Phone antes do Windows 10.

Windows 8

Esses comentários se aplicam somente a aplicativos compilados para Windows 8, mesmo quando executados em Windows 8.1 ou posterior.

No Windows 8, o WebView tem a característica de que outras regiões de interface do usuário, como controles, não podem ser renderizadas sobre o WebView. Esse "problema do espaço aéreo" ocorre devido à forma como as regiões de janela são tratadas internamente, especialmente como os eventos de entrada são processados e como a tela desenha. Se você quiser renderizar conteúdo HTML e também colocar outros elementos de interface do usuário sobre esse conteúdo HTML, deverá usar WebViewBrush como a área de renderização. O WebView ainda fornece as informações de origem HTML e você faz referência a esse WebView por meio da propriedade SourceName . WebViewBrush não tem essa limitação de sobreposição.

Se você quiser exibir um WebView interativo que apenas ocasionalmente tem conteúdo sobreposto (como uma lista suspensa ou barra de aplicativos), você pode ocultar temporariamente o controle WebView quando necessário, substituindo-o por um elemento usando um preenchimento WebViewBrush . Em seguida, quando o conteúdo sobreposto não estiver mais presente, você poderá exibir o WebView original novamente.

Observação

O "problema do espaço aéreo" foi corrigido começando com Windows 8.1 e não se aplica a aplicativos direcionados a Windows 8.1 ou Windows 10.

O WebView sempre usa a Internet Explorer 10 no modo de documento.

Histórico de versão

Versão do Windows Versão do SDK Valor adicionado
1607 14393 XYFocusDown
1607 14393 XYFocusLeft
1607 14393 XYFocusRight
1607 14393 XYFocusUp
1803 17134 SeparateProcessLost
1809 17763 WebResourceRequested

Construtores

WebView()

Inicializa uma nova instância da classe WebView .

WebView(WebViewExecutionMode)

Inicializa uma nova instância da classe WebView com o modo de execução especificado.

Propriedades

AccessKey

Obtém ou define a chave de acesso (mnemônica) para esse elemento.

(Herdado de UIElement)
AccessKeyScopeOwner

Obtém ou define um elemento de origem que fornece o escopo da chave de acesso para esse elemento, mesmo que ele não esteja na árvore visual do elemento de origem.

(Herdado de UIElement)
ActualHeight

Obtém a altura renderizada de um FrameworkElement. Consulte Observações.

(Herdado de FrameworkElement)
ActualOffset

Obtém a posição desse UIElement, em relação ao pai, computada durante a passagem de organização do processo de layout.

(Herdado de UIElement)
ActualSize

Obtém o tamanho que esse UIElement calculou durante a passagem de organização do processo de layout.

(Herdado de UIElement)
ActualTheme

Obtém o tema da interface do usuário que atualmente é usado pelo elemento , que pode ser diferente de RequestedTheme.

(Herdado de FrameworkElement)
ActualWidth

Obtém a largura renderizada de um FrameworkElement. Consulte Observações.

(Herdado de FrameworkElement)
AllowDrop

Obtém ou define um valor que determina se esse UIElement pode ser um destino de soltar para fins de operações de arrastar e soltar.

(Herdado de UIElement)
AllowedScriptNotifyUris

Observação

Não há suporte para AllowedScriptNotifyUris em aplicativos compilados para Windows 8.1. Em vez disso, atualize a seção ApplicationContentUriRules do manifesto do aplicativo. Para obter mais informações, consulte a seção Comentários.

Obtém ou define uma lista segura de URIs que têm permissão para disparar eventos ScriptNotify para este WebView.

AllowedScriptNotifyUrisProperty

Observação

Não há suporte para AllowedScriptNotifyUrisProperty em aplicativos compilados para Windows 8.1. Em vez disso, atualize a seção ApplicationContentUriRules do manifesto do aplicativo. Para obter mais informações, consulte a seção Comentários.

Identifica a propriedade de dependência AllowedScriptNotifyUris .

AllowFocusOnInteraction

Obtém ou define um valor que indica se o elemento obtém automaticamente o foco quando o usuário interage com ele.

(Herdado de FrameworkElement)
AllowFocusWhenDisabled

Obtém ou define se um controle desabilitado pode receber foco.

(Herdado de FrameworkElement)
AnyScriptNotifyUri

Observação

Não há suporte para AnyScriptNotifyUri em aplicativos compilados para Windows 8.1. Em vez disso, atualize a seção ApplicationContentUriRules do manifesto do aplicativo. Para obter mais informações, consulte a seção Comentários.

Obtém um valor que você pode usar para definir a propriedade AllowedScriptNotifyUris para indicar que qualquer página pode disparar eventos ScriptNotify para este WebView.

BaseUri

Obtém um URI (Uniform Resource Identifier) que representa o URI (Uniform Resource Identifier) base para um objeto construído por XAML no tempo de carregamento XAML. Essa propriedade é útil para resolução de URI (Uniform Resource Identifier) em tempo de execução.

(Herdado de FrameworkElement)
CacheMode

Obtém ou define um valor que indica que o conteúdo renderizado deve ser armazenado em cache como um bitmap composto quando possível.

(Herdado de UIElement)
CanBeScrollAnchor

Obtém ou define um valor que indica se o UIElement pode ser um candidato para ancoragem de rolagem.

(Herdado de UIElement)
CanDrag

Obtém ou define um valor que indica se o elemento pode ser arrastado como dados em uma operação de arrastar e soltar.

(Herdado de UIElement)
CanGoBack

Obtém um valor que indica se há pelo menos uma página no histórico de navegação com versões anteriores.

CanGoBackProperty

Identifica a propriedade de dependência CanGoBack .

CanGoForward

Obtém um valor que indica se há pelo menos uma página no histórico de navegação de encaminhamento.

CanGoForwardProperty

Identifica a propriedade de dependência CanGoForward .

CenterPoint

Obtém ou define o ponto central do elemento, que é o ponto sobre qual rotação ou dimensionamento ocorre. Afeta a posição de renderização do elemento .

(Herdado de UIElement)
Clip

Obtém ou define o RectangleGeometry usado para definir a estrutura de tópicos do conteúdo de um UIElement.

(Herdado de UIElement)
CompositeMode

Obtém ou define uma propriedade que declara modos alternativos de composição e mesclagem para o elemento em seu layout pai e janela. Isso é relevante para elementos envolvidos em uma interface do usuário XAML/Microsoft DirectX mista.

(Herdado de UIElement)
ContainsFullScreenElement

Obtém um valor que indica se o WebView contém um elemento que dá suporte à tela inteira.

ContainsFullScreenElementProperty

Identifica a propriedade de dependência ContainsFullScreenElement .

ContextFlyout

Obtém ou define o submenu associado a esse elemento.

(Herdado de UIElement)
DataContext

Obtém ou define o contexto de dados de um FrameworkElement. Um uso comum de um contexto de dados é quando um FrameworkElement usa a extensão de marcação {Binding} e participa da associação de dados.

(Herdado de FrameworkElement)
DataTransferPackage

Observação

DataTransferPackage pode ser alterado ou indisponível para versões após Windows 8.1. Em vez disso, use CaptureSelectedContentToDataPackageAsync.

Obtém um DataPackage de área de transferência conforme passado para o WebView.

DataTransferPackageProperty

Observação

DataTransferPackageProperty pode ser alterado ou indisponível para versões após Windows 8.1. Em vez disso, use CaptureSelectedContentToDataPackageAsync.

Identifica a propriedade de dependência DataTransferPackage .

DefaultBackgroundColor

Obtém ou define a cor a ser usada como a tela de fundo do WebView quando o conteúdo HTML não especifica uma cor.

DefaultBackgroundColorProperty

Identifica a propriedade de dependência DefaultBackgroundColor .

DefaultExecutionMode

Obtém o comportamento de threading padrão das instâncias do WebView no aplicativo atual.

DeferredPermissionRequests

Obtém uma coleção de solicitações de permissão que estão aguardando para serem concedidas ou negadas.

DesiredSize

Obtém o tamanho que esse UIElement calculou durante a passagem de medida do processo de layout.

(Herdado de UIElement)
Dispatcher

Obtém o CoreDispatcher ao qual esse objeto está associado. O CoreDispatcher representa uma instalação que pode acessar DependencyObject no thread da interface do usuário mesmo que o código seja iniciado por um thread que não seja da interface do usuário.

(Herdado de DependencyObject)
DocumentTitle

Obtém o título da página exibida atualmente no WebView.

DocumentTitleProperty

Identifica a propriedade de dependência DocumentTitle .

ExecutionMode

Obtém um valor que indica se o WebView hospeda o conteúdo no thread da interface do usuário ou um thread que não é da interface do usuário.

ExitDisplayModeOnAccessKeyInvoked

Obtém ou define um valor que especifica se a exibição da chave de acesso é ignorada quando uma chave de acesso é invocada.

(Herdado de UIElement)
FlowDirection

Obtém ou define a direção na qual o texto e outros elementos da interface do usuário fluem dentro de qualquer elemento pai que controla seu layout. Essa propriedade pode ser definida como LeftToRight ou RightToLeft. Definir FlowDirection como RightToLeft em qualquer elemento define o alinhamento à direita, a ordem de leitura da direita para a esquerda e o layout do controle para fluir da direita para a esquerda.

(Herdado de FrameworkElement)
FocusVisualMargin

Obtém ou define a margem externa do visual de foco para um FrameworkElement.

(Herdado de FrameworkElement)
FocusVisualPrimaryBrush

Obtém ou define o pincel usado para desenhar a borda externa de um HighVisibility visual de foco ou Reveal para um FrameworkElement.

(Herdado de FrameworkElement)
FocusVisualPrimaryThickness

Obtém ou define a espessura da borda externa de um HighVisibility visual de foco ou Reveal para um FrameworkElement.

(Herdado de FrameworkElement)
FocusVisualSecondaryBrush

Obtém ou define o pincel usado para desenhar a borda interna de um HighVisibility visual de foco ou Reveal para um FrameworkElement.

(Herdado de FrameworkElement)
FocusVisualSecondaryThickness

Obtém ou define a espessura da borda interna de um HighVisibility visual de foco ou Reveal para um FrameworkElement.

(Herdado de FrameworkElement)
Height

Obtém ou define a altura sugerida de um FrameworkElement.

(Herdado de FrameworkElement)
HighContrastAdjustment

Obtém ou define um valor que indica se a estrutura ajusta automaticamente as propriedades visuais do elemento quando os temas de alto contraste estão habilitados.

(Herdado de UIElement)
HorizontalAlignment

Obtém ou define as características de alinhamento horizontal que são aplicadas a um FrameworkElement quando ele é composto em um pai de layout, como um painel ou controle de itens.

(Herdado de FrameworkElement)
IsAccessKeyScope

Obtém ou define um valor que indica se um elemento define seu próprio escopo de chave de acesso.

(Herdado de UIElement)
IsDoubleTapEnabled

Obtém ou define um valor que determina se o evento DoubleTapped pode se originar desse elemento.

(Herdado de UIElement)
IsHitTestVisible

Obtém ou define se a área contida desse UIElement pode retornar valores verdadeiros para teste de clique.

(Herdado de UIElement)
IsHoldingEnabled

Obtém ou define um valor que determina se o evento Holding pode se originar desse elemento.

(Herdado de UIElement)
IsLoaded

Obtém um valor que indica se o elemento foi adicionado à árvore de elementos e está pronto para interação.

(Herdado de FrameworkElement)
IsRightTapEnabled

Obtém ou define um valor que determina se o evento RightTapped pode se originar desse elemento.

(Herdado de UIElement)
IsTapEnabled

Obtém ou define um valor que determina se o evento Tapped pode se originar desse elemento.

(Herdado de UIElement)
KeyboardAcceleratorPlacementMode

Obtém ou define um valor que indica se a dica de ferramenta de controle exibe a combinação de teclas para seu acelerador de teclado associado.

(Herdado de UIElement)
KeyboardAcceleratorPlacementTarget

Obtém ou define um valor que indica a dica de ferramenta de controle que exibe a combinação de teclas de acelerador.

(Herdado de UIElement)
KeyboardAccelerators

Obtém a coleção de combinações de teclas que invocam uma ação usando o teclado.

Os aceleradores normalmente são atribuídos a botões ou itens de menu.

Exemplo de um menu mostrando aceleradores de teclado para vários itens de menu
Exemplo de um menu mostrando aceleradores de teclado para vários itens de menu

(Herdado de UIElement)
KeyTipHorizontalOffset

Obtém ou define um valor que indica o quão distante à esquerda ou à direita a Dica de Chave é colocada em relação ao UIElement.

(Herdado de UIElement)
KeyTipPlacementMode

Obtém ou define um valor que indica onde a dica de chave de acesso é colocada em relação ao limite do UIElement.

(Herdado de UIElement)
KeyTipTarget

Obtém ou define um valor que indica o elemento direcionado pela dica de chave de acesso.

(Herdado de UIElement)
KeyTipVerticalOffset

Obtém ou define um valor que indica até que ponto a Dica de Chave é colocada em relação ao elemento de interface do usuário.

(Herdado de UIElement)
Language

Obtém ou define informações de linguagem de localização/globalização que se aplicam a um FrameworkElement e também a todos os elementos filho do FrameworkElement atual na representação do objeto e na interface do usuário.

(Herdado de FrameworkElement)
Lights

Obtém a coleção de objetos XamlLight anexados a esse elemento.

(Herdado de UIElement)
ManipulationMode

Obtém ou define o valor ManipulationModes usado para o comportamento de UIElement e a interação com gestos. Definir esse valor permite lidar com os eventos de manipulação desse elemento no código do aplicativo.

(Herdado de UIElement)
Margin

Obtém ou define a margem externa de um FrameworkElement.

(Herdado de FrameworkElement)
MaxHeight

Obtém ou define a restrição de altura máxima de um FrameworkElement.

(Herdado de FrameworkElement)
MaxWidth

Obtém ou define a restrição de largura máxima de um FrameworkElement.

(Herdado de FrameworkElement)
MinHeight

Obtém ou define a restrição de altura mínima de um FrameworkElement.

(Herdado de FrameworkElement)
MinWidth

Obtém ou define a restrição de largura mínima de um FrameworkElement.

(Herdado de FrameworkElement)
Name

Obtém ou define o nome de identificação do objeto. Quando um processador XAML cria a árvore de objetos da marcação XAML, o código em tempo de execução pode se referir ao objeto declarado XAML por esse nome.

(Herdado de FrameworkElement)
Opacity

Obtém ou define o grau de opacidade do objeto.

(Herdado de UIElement)
OpacityTransition

Obtém ou define o ScalarTransition que anima as alterações na propriedade Opacity.

(Herdado de UIElement)
Parent

Obtém o objeto pai deste FrameworkElement na árvore de objetos.

(Herdado de FrameworkElement)
PointerCaptures

Obtém o conjunto de todos os ponteiros capturados, representados como valores de ponteiro .

(Herdado de UIElement)
Projection

Obtém ou define a projeção de perspectiva (efeito 3D) a ser aplicada ao renderizar esse elemento.

(Herdado de UIElement)
RenderSize

Obtém o tamanho final de renderização de um UIElement. O uso não é recomendado, consulte Comentários.

(Herdado de UIElement)
RenderTransform

Obtém ou define informações de transformação que afetam a posição de renderização de um UIElement.

(Herdado de UIElement)
RenderTransformOrigin

Obtém ou define o ponto de origem de qualquer possível transformação de renderização declarada por RenderTransform, em relação aos limites do UIElement.

(Herdado de UIElement)
RequestedTheme

Obtém ou define o tema da interface do usuário que é usado pelo UIElement (e seus elementos filho) para determinação de recursos. O tema da interface do usuário especificado com RequestedTheme pode substituir RequestedTheme no nível do aplicativo.

(Herdado de FrameworkElement)
Resources

Obtém o dicionário de recursos definido localmente. No XAML, você pode estabelecer itens de recurso como elementos de objeto filho de um frameworkElement.Resources elemento de propriedade, por meio da sintaxe de coleção implícita XAML.

(Herdado de FrameworkElement)
Rotation

Obtém ou define o ângulo da rotação no sentido horário, em graus. Gira em relação ao RotationAxis e ao CenterPoint. Afeta a posição de renderização do elemento.

(Herdado de UIElement)
RotationAxis

Obtém ou define o eixo para girar o elemento ao redor.

(Herdado de UIElement)
RotationTransition

Obtém ou define o ScalarTransition que anima as alterações na propriedade Rotation.

(Herdado de UIElement)
Scale

Obtém ou define a escala do elemento. Dimensiona em relação ao CenterPoint do elemento. Afeta a posição de renderização do elemento.

(Herdado de UIElement)
ScaleTransition

Obtém ou define o Vector3Transition que anima as alterações na propriedade Scale.

(Herdado de UIElement)
Settings

Obtém um objeto WebViewSettings que contém propriedades para habilitar ou desabilitar recursos do WebView .

Shadow

Obtém ou define o efeito de sombra convertido pelo elemento .

(Herdado de UIElement)
Source

Obtém ou define a origem do URI (Uniform Resource Identifier) do conteúdo HTML a ser exibido no controle WebView .

SourceProperty

Identifica a propriedade Dependência de origem .

Style

Obtém ou define um Estilo de instância que é aplicado a esse objeto durante o layout e a renderização.

(Herdado de FrameworkElement)
TabFocusNavigation

Obtém ou define um valor que modifica como o tabbing e TabIndex funcionam para esse controle.

(Herdado de UIElement)
Tag

Obtém ou define um valor de objeto arbitrário que pode ser usado para armazenar informações personalizadas sobre esse objeto.

(Herdado de FrameworkElement)
Transform3D

Obtém ou define o efeito de transformação 3D a ser aplicado ao renderizar esse elemento.

(Herdado de UIElement)
TransformMatrix

Obtém ou define a matriz de transformação a ser aplicada ao elemento .

(Herdado de UIElement)
Transitions

Obtém ou define a coleção de elementos de estilo de transição que se aplicam a um UIElement.

(Herdado de UIElement)
Translation

Obtém ou define a posição de renderização x, y e z do elemento.

(Herdado de UIElement)
TranslationTransition

Obtém ou define o Vector3Transition que anima as alterações na propriedade Translation.

(Herdado de UIElement)
Triggers

Obtém a coleção de gatilhos para animações definidas para um FrameworkElement. Não usado com frequência. Consulte Observações.

(Herdado de FrameworkElement)
UIContext

Obtém o identificador de contexto para o elemento .

(Herdado de UIElement)
UseLayoutRounding

Obtém ou define um valor que determina se a renderização para o objeto e sua subárvore visual deve usar o comportamento de arredondamento que alinha a renderização a pixels inteiros.

(Herdado de UIElement)
VerticalAlignment

Obtém ou define as características de alinhamento vertical que são aplicadas a um FrameworkElement quando ele é composto em um objeto pai, como um painel ou controle de itens.

(Herdado de FrameworkElement)
Visibility

Obtém ou define a visibilidade de um UIElement. Um UIElement que não está visível não é renderizado e não comunica o tamanho desejado para o layout.

(Herdado de UIElement)
Width

Obtém ou define a largura de um FrameworkElement.

(Herdado de FrameworkElement)
XamlRoot

Obtém ou define o XamlRoot no qual esse elemento está sendo exibido.

(Herdado de UIElement)
XYFocusDown

Obtém ou define o objeto que obtém o foco quando um usuário pressiona o Teclado Direcional (D-pad) para baixo.

XYFocusDownNavigationStrategy

Obtém ou define um valor que especifica a estratégia usada para determinar o elemento de destino de uma navegação inativa.

(Herdado de UIElement)
XYFocusDownProperty

Identifica a propriedade de dependência XYFocusDown .

XYFocusKeyboardNavigation

Obtém ou define um valor que habilita ou desabilita a navegação usando as setas direcionais do teclado.

(Herdado de UIElement)
XYFocusLeft

Obtém ou define o objeto que obtém o foco quando um usuário pressiona o Teclado Direcional (D-pad) à esquerda.

XYFocusLeftNavigationStrategy

Obtém ou define um valor que especifica a estratégia usada para determinar o elemento de destino de uma navegação à esquerda.

(Herdado de UIElement)
XYFocusLeftProperty

Identifica a propriedade de dependência XYFocusLeft .

XYFocusRight

Obtém ou define o objeto que obtém o foco quando um usuário pressiona o Teclado Direcional (D-pad) à direita.

XYFocusRightNavigationStrategy

Obtém ou define um valor que especifica a estratégia usada para determinar o elemento de destino de uma navegação à direita.

(Herdado de UIElement)
XYFocusRightProperty

Identifica a propriedade de dependência XYFocusRight .

XYFocusUp

Obtém ou define o objeto que obtém o foco quando um usuário pressiona o Teclado Direcional (D-pad) para cima.

XYFocusUpNavigationStrategy

Obtém ou define um valor que especifica a estratégia usada para determinar o elemento de destino de uma navegação para cima.

(Herdado de UIElement)
XYFocusUpProperty

Identifica a propriedade de dependência XYFocusUp .

Métodos

AddHandler(RoutedEvent, Object, Boolean)

Adiciona um manipulador de eventos roteados de um evento roteado especificado, adicionando o manipulador à coleção de manipuladores no elemento atual. Especifique handledEventsToo como true para que o manipulador fornecido seja invocado mesmo se o evento for tratado em outro lugar.

(Herdado de UIElement)
AddWebAllowedObject(String, Object)

Adiciona um objeto Windows Runtime nativo como um parâmetro global ao documento de nível superior dentro de um WebView.

Arrange(Rect)

Posiciona objetos filho e determina um tamanho para um UIElement. Os objetos pai que implementam o layout personalizado para seus elementos filho devem chamar esse método de suas implementações de substituição de layout para formar uma atualização de layout recursivo.

(Herdado de UIElement)
ArrangeOverride(Size)

Fornece o comportamento para a passagem de layout "Organizar". As classes podem substituir esse método para definir seu próprio comportamento de passagem "Organizar".

(Herdado de FrameworkElement)
BuildLocalStreamUri(String, String)

Cria um URI que você pode passar para NavigateToLocalStreamUri.

CancelDirectManipulations()

Cancela o processamento contínuo de manipulação direta (movimento panorâmico/zoom definido pelo sistema) em qualquer pai ScrollViewer que contenha o UIElement atual.

(Herdado de UIElement)
CapturePointer(Pointer)

Define a captura de ponteiro para um UIElement. Depois de capturado, somente o elemento que tem captura disparará eventos relacionados ao ponteiro.

(Herdado de UIElement)
CapturePreviewToStreamAsync(IRandomAccessStream)

Cria uma imagem do conteúdo atual do WebView e a grava no fluxo especificado.

CaptureSelectedContentToDataPackageAsync()

Obtém de forma assíncrona um DataPackage que contém o conteúdo selecionado no WebView.

ClearTemporaryWebDataAsync()

Limpa os dados de cache e IndexedDB do WebView.

ClearValue(DependencyProperty)

Limpa o valor local de uma propriedade de dependência.

(Herdado de DependencyObject)
DeferredPermissionRequestById(UInt32)

Retorna a solicitação de permissão adiada com a ID especificada.

FindName(String)

Recupera um objeto que tem o nome do identificador especificado.

(Herdado de FrameworkElement)
FindSubElementsForTouchTargeting(Point, Rect)

Permite que uma subclasse UIElement exponha elementos filho que ajudam a resolver o direcionamento de toque.

(Herdado de UIElement)
Focus(FocusState)

Define o foco de entrada para o WebView.

GetAnimationBaseValue(DependencyProperty)

Retorna qualquer valor base estabelecido para uma propriedade de dependência, que se aplicaria nos casos em que uma animação não está ativa.

(Herdado de DependencyObject)
GetBindingExpression(DependencyProperty)

Retorna a BindingExpression que representa a associação na propriedade especificada.

(Herdado de FrameworkElement)
GetChildrenInTabFocusOrder()

Permite que uma subclasse UIElement exponha elementos filho que participam do foco de Tab.

(Herdado de UIElement)
GetValue(DependencyProperty)

Retorna o valor efetivo atual de uma propriedade de dependência de um DependencyObject.

(Herdado de DependencyObject)
GoBack()

Navega o WebView até a página anterior no histórico de navegação.

GoForward()

Navega pelo WebView até a próxima página no histórico de navegação.

GoToElementStateCore(String, Boolean)

Quando implementado em uma classe derivada, permite a construção por estado de uma árvore visual para um modelo de controle no código, em vez de carregar XAML para todos os estados na inicialização de controle.

(Herdado de FrameworkElement)
InvalidateArrange()

Invalida o estado de organização (layout) de um UIElement. Após a invalidação, o UIElement terá seu layout atualizado, o que ocorrerá de forma assíncrona.

(Herdado de UIElement)
InvalidateMeasure()

Invalida o estado de medida (layout) de um UIElement.

(Herdado de UIElement)
InvalidateViewport()

Invalida o estado do visor para um UIElement usado para calcular o visor efetivo.

(Herdado de FrameworkElement)
InvokeScript(String, String[])

Observação

InvokeScript pode ser alterado ou indisponível para versões após Windows 8.1. Em vez disso, use InvokeScriptAsync.

Executa a função de script especificada do HTML carregado no momento, com argumentos específicos.

InvokeScriptAsync(String, IIterable<String>)

Executa a função de script especificada do HTML carregado no momento, com argumentos específicos, como uma ação assíncrona.

Measure(Size)

Atualizações DesiredSize de um UIElement. Normalmente, os objetos que implementam o layout personalizado para seus filhos de layout chamam esse método de suas próprias implementações MeasureOverride para formar uma atualização de layout recursiva.

(Herdado de UIElement)
MeasureOverride(Size)

Fornece o comportamento para a passagem "Medida" do ciclo de layout. As classes podem substituir esse método para definir seu próprio comportamento de passagem "Medida".

(Herdado de FrameworkElement)
Navigate(Uri)

Carrega o conteúdo HTML no URI (Uniform Resource Identifier) especificado.

NavigateToLocalStreamUri(Uri, IUriToStreamResolver)

Carrega conteúdo da Web local no URI especificado usando um IUriToStreamResolver.

NavigateToString(String)

Carrega o conteúdo HTML especificado como um novo documento.

NavigateWithHttpRequestMessage(HttpRequestMessage)

Navega o WebView para um URI com uma solicitação POST e cabeçalhos HTTP.

OnApplyTemplate()

Invocado sempre que o código do aplicativo ou processos internos (como uma passagem de layout de recompilação) chamam ApplyTemplate. Em termos mais simples, isso significa que o método é chamado pouco antes de um elemento de interface do usuário ser exibido em seu aplicativo. Substitua esse método para influenciar a lógica pós-modelo padrão de uma classe.

(Herdado de FrameworkElement)
OnBringIntoViewRequested(BringIntoViewRequestedEventArgs)

Chamado antes do evento BringIntoViewRequested ocorrer.

(Herdado de UIElement)
OnCreateAutomationPeer()

Quando implementado em uma classe derivada, retorna implementações de AutomationPeer específicas da classe para a infraestrutura de Automação da Interface do Usuário da Microsoft.

(Herdado de UIElement)
OnDisconnectVisualChildren()

Substitua esse método para implementar como o layout e a lógica devem se comportar quando os itens são removidos de um conteúdo específico da classe ou da propriedade children.

(Herdado de UIElement)
OnKeyboardAcceleratorInvoked(KeyboardAcceleratorInvokedEventArgs)

Chamado quando um atalho de teclado (ou acelerador) é processado em seu aplicativo. Substitua esse método para lidar com a resposta do aplicativo quando um acelerador de teclado é invocado.

(Herdado de UIElement)
OnProcessKeyboardAccelerators(ProcessKeyboardAcceleratorEventArgs)

Chamado pouco antes de um atalho de teclado (ou acelerador) ser processado em seu aplicativo. Invocado sempre que o código do aplicativo ou processos internos chamam ProcessKeyboardAccelerators. Substitua esse método para influenciar a manipulação do acelerador padrão.

(Herdado de UIElement)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Define uma propriedade que pode ser animada.

(Herdado de UIElement)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

Quando substituído em uma classe derivada, define uma propriedade que pode ser animada.

(Herdado de UIElement)
ReadLocalValue(DependencyProperty)

Retorna o valor local de uma propriedade de dependência, se um valor local for definido.

(Herdado de DependencyObject)
Refresh()

Recarrega o conteúdo atual no WebView.

RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra uma função de notificação para escutar alterações em uma DependencyProperty específica nesta instância dependencyObject .

(Herdado de DependencyObject)
ReleasePointerCapture(Pointer)

Libera capturas de ponteiro para captura de um ponteiro específico por este UIElement.

(Herdado de UIElement)
ReleasePointerCaptures()

Libera todas as capturas de ponteiro mantidas por esse elemento.

(Herdado de UIElement)
RemoveHandler(RoutedEvent, Object)

Remove o manipulador de eventos roteado especificado desse UIElement. Normalmente, o manipulador em questão foi adicionado por AddHandler.

(Herdado de UIElement)
SetBinding(DependencyProperty, BindingBase)

Anexa uma associação a um FrameworkElement, usando o objeto de associação fornecido.

(Herdado de FrameworkElement)
SetValue(DependencyProperty, Object)

Define o valor local de uma propriedade de dependência em um DependencyObject.

(Herdado de DependencyObject)
StartAnimation(ICompositionAnimationBase)

Inicia a animação especificada no elemento .

(Herdado de UIElement)
StartBringIntoView()

Inicia uma solicitação para a estrutura XAML para colocar o elemento em exibição em todas as regiões roláveis em que ele está contido.

(Herdado de UIElement)
StartBringIntoView(BringIntoViewOptions)

Inicia uma solicitação para a estrutura XAML para colocar o elemento em exibição usando as opções especificadas.

(Herdado de UIElement)
StartDragAsync(PointerPoint)

Inicia uma operação do tipo "arrastar e soltar".

(Herdado de UIElement)
Stop()

Interrompe a navegação ou o download do WebView atual.

StopAnimation(ICompositionAnimationBase)

Interrompe a animação especificada no elemento .

(Herdado de UIElement)
TransformToVisual(UIElement)

Retorna um objeto de transformação que pode ser usado para transformar coordenadas do UIElement para o objeto especificado.

(Herdado de UIElement)
TryInvokeKeyboardAccelerator(ProcessKeyboardAcceleratorEventArgs)

Tenta invocar um atalho de teclado (ou acelerador) pesquisando em toda a árvore visual do UIElement o atalho.

(Herdado de UIElement)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancela uma notificação de alteração que foi registrada anteriormente chamando RegisterPropertyChangedCallback.

(Herdado de DependencyObject)
UpdateLayout()

Garante que todas as posições de objetos filho de um UIElement sejam atualizadas corretamente para layout.

(Herdado de UIElement)

Eventos

AccessKeyDisplayDismissed

Ocorre quando as chaves de acesso não devem mais ser exibidas.

(Herdado de UIElement)
AccessKeyDisplayRequested

Ocorre quando o usuário solicita que as chaves de acesso sejam exibidas.

(Herdado de UIElement)
AccessKeyInvoked

Ocorre quando um usuário conclui uma sequência de chaves de acesso.

(Herdado de UIElement)
ActualThemeChanged

Ocorre quando o valor da propriedade ActualTheme foi alterado.

(Herdado de FrameworkElement)
BringIntoViewRequested

Ocorre quando StartBringIntoView é chamado nesse elemento ou um de seus descendentes.

(Herdado de UIElement)
CharacterReceived

Ocorre quando um único caractere composto é recebido pela fila de entrada.

(Herdado de UIElement)
ContainsFullScreenElementChanged

Ocorre quando o status de se o WebView atualmente contém um elemento de tela inteira ou não é alterado.

ContentLoading

Ocorre quando o WebView começou a carregar novo conteúdo.

ContextCanceled

Ocorre quando um gesto de entrada de contexto continua em um gesto de manipulação, para notificar o elemento de que o submenu de contexto não deve ser aberto.

(Herdado de UIElement)
ContextRequested

Ocorre quando o usuário conclui um gesto de entrada de contexto, como um clique com o botão direito do mouse.

(Herdado de UIElement)
DataContextChanged

Ocorre quando o valor da propriedade FrameworkElement.DataContext é alterado.

(Herdado de FrameworkElement)
DOMContentLoaded

Ocorre quando o WebView termina de analisar o conteúdo HTML atual.

DoubleTapped

Ocorre quando ocorre uma interação DoubleTap sem tratamento na área de teste de ocorrência desse elemento.

(Herdado de UIElement)
DragEnter

Ocorre quando o sistema de entrada relata um evento de arrastar subjacente com esse elemento como o destino.

(Herdado de UIElement)
DragLeave

Ocorre quando o sistema de entrada relata um evento de arrastar subjacente com esse elemento como a origem.

(Herdado de UIElement)
DragOver

Ocorre quando o sistema de entrada relata um evento do tipo "arrastar" subjacente com esse elemento como a reprodução automática potencial.

(Herdado de UIElement)
DragStarting

Ocorre quando uma operação de arrastar é iniciada.

(Herdado de UIElement)
Drop

Ocorre quando o sistema de entrada relata um evento soltar subjacente com esse elemento sendo uma reprodução automática.

(Herdado de UIElement)
DropCompleted

Ocorre quando uma operação de arrastar e soltar com esse elemento quando a origem é encerrada.

(Herdado de UIElement)
EffectiveViewportChanged

Ocorre quando o visor efetivo do FrameworkElement é alterado.

(Herdado de FrameworkElement)
FrameContentLoading

Ocorre quando um quadro no WebView começa a carregar novo conteúdo.

FrameDOMContentLoaded

Ocorre quando um quadro no WebView termina de analisar seu conteúdo HTML atual.

FrameNavigationCompleted

Ocorre quando um quadro no WebView termina de carregar seu conteúdo.

FrameNavigationStarting

Ocorre antes que um quadro no WebView navegue até o novo conteúdo.

GettingFocus

Ocorre antes que um UIElement receba o foco. Esse evento é gerado de forma síncrona para garantir que o foco não seja movido enquanto o evento estiver borbulhando.

(Herdado de UIElement)
GotFocus

Ocorre quando um UIElement recebe o foco. Esse evento é gerado de forma assíncrona, para que o foco possa se mover novamente antes que o borbulhamento seja concluído.

(Herdado de UIElement)
Holding

Ocorre quando uma interação hold sem tratamento ocorre na área de teste de ocorrência desse elemento.

(Herdado de UIElement)
KeyDown

Ocorre quando uma tecla de teclado é pressionada enquanto o UIElement tem foco.

(Herdado de UIElement)
KeyUp

Ocorre quando uma tecla de teclado é lançada enquanto o UIElement tem foco.

(Herdado de UIElement)
LayoutUpdated

Ocorre quando o layout da árvore visual é alterado devido a propriedades relevantes ao layout alterando o valor ou alguma outra ação que atualiza o layout.

(Herdado de FrameworkElement)
LoadCompleted

Observação

LoadCompleted pode ser alterado ou indisponível para versões após Windows 8.1. Em vez disso, use NavigationCompleted.

Ocorre quando a navegação de nível superior é concluída e o conteúdo é carregado no controle WebView ou quando ocorre um erro durante o carregamento.

Loaded

Ocorre quando um FrameworkElement foi construído e adicionado à árvore de objetos e está pronto para interação.

(Herdado de FrameworkElement)
Loading

Ocorre quando um FrameworkElement começa a ser carregado.

(Herdado de FrameworkElement)
LongRunningScriptDetected

Ocorre periodicamente enquanto o WebView executa o JavaScript, permitindo que você interrompa o script.

LosingFocus

Ocorre antes que um UIElement perca o foco. Esse evento é gerado de forma síncrona para garantir que o foco não seja movido enquanto o evento estiver borbulhando.

(Herdado de UIElement)
LostFocus

Ocorre quando um UIElement perde o foco. Esse evento é gerado de forma assíncrona, para que o foco possa se mover novamente antes que o borbulhamento seja concluído.

(Herdado de UIElement)
ManipulationCompleted

Ocorre quando uma manipulação no UIElement é concluída.

(Herdado de UIElement)
ManipulationDelta

Ocorre quando o dispositivo de entrada muda de posição durante uma manipulação.

(Herdado de UIElement)
ManipulationInertiaStarting

Ocorre quando o dispositivo de entrada perde contato com o objeto UIElement durante a manipulação e a inércia começa.

(Herdado de UIElement)
ManipulationStarted

Ocorre quando um dispositivo de entrada inicia uma manipulação no UIElement.

(Herdado de UIElement)
ManipulationStarting

Ocorre quando o processador de manipulação é criado.

(Herdado de UIElement)
NavigationCompleted

Ocorre quando o WebView termina de carregar o conteúdo atual ou se a navegação falhou.

NavigationFailed

Observação

NavigationFailed pode ser alterado ou indisponível para versões após Windows 8.1. Em vez disso, use NavigationCompleted.

Ocorre quando o WebView não pode concluir a tentativa de navegação.

NavigationStarting

Ocorre antes que o WebView navegue até o novo conteúdo.

NewWindowRequested

Ocorre quando um usuário executa uma ação em um WebView que faz com que o conteúdo seja aberto em uma nova janela.

NoFocusCandidateFound

Ocorre quando um usuário tenta mover o foco (por meio de setas guias ou direcionais), mas o foco não se move porque nenhum candidato de foco é encontrado na direção do movimento.

(Herdado de UIElement)
PermissionRequested

Ocorre quando uma ação em um WebView exige que essa permissão seja concedida.

PointerCanceled

Ocorre quando um ponteiro que fez contato perde contato anormalmente.

(Herdado de UIElement)
PointerCaptureLost

Ocorre quando a captura de ponteiro anteriormente mantida por esse elemento se move para outro elemento ou em outro lugar.

(Herdado de UIElement)
PointerEntered

Ocorre quando um ponteiro entra na área de teste de ocorrência desse elemento.

(Herdado de UIElement)
PointerExited

Ocorre quando um ponteiro deixa a área de teste de ocorrência desse elemento.

(Herdado de UIElement)
PointerMoved

Ocorre quando um ponteiro se move enquanto o ponteiro permanece dentro da área de teste de ocorrência desse elemento.

(Herdado de UIElement)
PointerPressed

Ocorre quando o dispositivo de ponteiro inicia uma ação Pressionar dentro desse elemento.

(Herdado de UIElement)
PointerReleased

Ocorre quando o dispositivo de ponteiro que iniciou anteriormente uma ação press é liberado, enquanto dentro desse elemento. Observe que o fim de uma ação de Imprensa não é garantido para disparar um evento PointerReleased; outros eventos podem disparar em vez disso. Para obter mais informações, consulte Comentários.

(Herdado de UIElement)
PointerWheelChanged

Ocorre quando o valor delta de uma roda de ponteiro é alterado.

(Herdado de UIElement)
PreviewKeyDown

Ocorre quando uma tecla de teclado é pressionada enquanto o UIElement tem foco.

(Herdado de UIElement)
PreviewKeyUp

Ocorre quando uma tecla de teclado é lançada enquanto o UIElement tem foco.

(Herdado de UIElement)
ProcessKeyboardAccelerators

Ocorre quando um atalho de teclado (ou acelerador) é pressionado.

(Herdado de UIElement)
RightTapped

Ocorre quando um estímulo de entrada de toque à direita acontece enquanto o ponteiro está sobre o elemento .

(Herdado de UIElement)
ScriptNotify

Ocorre quando o conteúdo contido no controle WebView passa uma cadeia de caracteres para o aplicativo usando JavaScript.

SeparateProcessLost

Ocorre quando um WebView é executado com um ExecutionMode de SeparateProcess e o processo separado é perdido.

SizeChanged

Ocorre quando a propriedade ActualHeight ou ActualWidth altera o valor em um FrameworkElement.

(Herdado de FrameworkElement)
Tapped

Ocorre quando uma interação tap sem tratamento ocorre na área de teste de clique desse elemento.

(Herdado de UIElement)
Unloaded

Ocorre quando esse objeto não está mais conectado à árvore de objetos main.

(Herdado de FrameworkElement)
UnsafeContentWarningDisplaying

Ocorre quando o WebView mostra uma página de aviso para conteúdo que foi relatado como não seguro pelo Filtro SmartScreen.

UnsupportedUriSchemeIdentified

Ocorre quando é feita uma tentativa de navegar até um URI (Uniform Resource Identifier) usando um esquema que o WebView não dá suporte.

UnviewableContentIdentified

Ocorre quando o WebView tenta baixar um arquivo sem suporte.

WebResourceRequested

Ocorre quando uma solicitação HTTP foi feita.

Aplica-se a

Confira também