WebView Clase

Definición

Proporciona un control que hospeda contenido HTML en una aplicación.

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 .../>
Herencia
Object Platform::Object IInspectable DependencyObject UIElement FrameworkElement WebView
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

Ejemplos

Sugerencia

Para obtener más información, instrucciones de diseño y ejemplos de código, consulta Vista web.

Si tienes instalada la aplicación WinUI 2 Gallery , haz clic aquí para abrir la aplicación y ver WebView en acción.

En el ejemplo de código siguiente se muestra cómo navegar por un objeto WebView a un URI contenido en un TextBox denominado Address.

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

En el ejemplo de código siguiente se muestra cómo cargar HTML local en un control WebView.

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

Comentarios

Use el control WebView para hospedar contenido web en la aplicación. Las aplicaciones para Surface Hub o Xbox deben usar este WebView.

Importante

Para las aplicaciones de escritorio, te recomendamos que uses el control WebView2 , que está disponible como parte de la Biblioteca de interfaz de usuario de Windows 2 para UWP (WinUI 2). WebView2 usa Microsoft Edge (Chromium) como motor de representación para mostrar contenido web en aplicaciones. Para obtener más información, consulta Introducción a Microsoft Edge WebView2, Introducción a WebView2 en aplicaciones winUI 2 (UWP) y WebView2 en la referencia de la API de WinUI.

Importante

Islas XAML: este control no se admite en aplicaciones de islas XAML. Para ver alternativas, consulta Islas XAML: controles de vista web.

WebView no es una subclase Control y, por tanto, no tiene una plantilla de control. Puede establecer varias propiedades para controlar algunos aspectos visuales de WebView. El área de presentación está restringida por las propiedades Width y Height . Para traducir, escalar, sesgar y girar un objeto WebView, use la propiedad RenderTransform . Para controlar la opacidad de WebView, establezca la propiedad Opacity . Para especificar un color que se usa como fondo de la página web cuando el contenido HTML no especifica uno, establece la propiedad DefaultBackgroundColor.

Puede obtener el título del documento HTML que se muestra actualmente en WebView mediante la propiedad DocumentTitle .

Aunque WebView no es una subclase Control , recibirá el foco de entrada del teclado y participará en la secuencia de pestañas. Proporciona un método Focus y eventos GotFocus y LostFocus, pero carece de propiedades relacionadas con la tabulación. Su posición en la secuencia de tabulación es igual a su posición en el orden de documentos XAML. La secuencia de pestañas incluye todos los elementos del contenido de WebView que pueden recibir el foco de entrada.

Como se indica en la tabla Events, WebView no admite la mayoría de los eventos de entrada de usuario heredados de UIElement, como KeyDown, KeyUp y PointerPressed. Una solución alternativa común es usar InvokeScriptAsync con la función de evaluación de JavaScript para usar los controladores de eventos HTML y para usar window.external.notify del controlador de eventos HTML para notificar a la aplicación mediante WebView.ScriptNotify.

En las aplicaciones compiladas para Windows 10, WebView usa el motor de representación de Microsoft Edge para mostrar contenido HTML. En las aplicaciones compiladas para Windows 8 o Windows 8.1, WebView usa Internet Explorer 11 en modo de documento. No es compatible con ningún control o complemento de Microsoft ActiveX, como microsoft Silverlight o archivos de formato de documento portátil (PDF).

WebView proporciona varias API para la navegación básica: GoBack, GoForward, Stop, Refresh, CanGoBack y CanGoForward. Puedes usarlas para agregar a tu aplicación funcionalidades de exploración web típicas.

Para establecer el contenido inicial de WebView, establezca la propiedad Source en XAML. El analizador XAML convierte automáticamente la cadena en un 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"/>

La propiedad Source se puede establecer en el código, pero en lugar de hacerlo, normalmente se usa uno de los métodos Navigate para cargar contenido en el código.

Para cargar contenido web, use el método Navigate con un URI que use el esquema http o https .

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

Para navegar a un identificador uniforme de recursos (URI) con una solicitud POST y encabezados HTTP, use el método NavigateWithHttpRequestMessage . Este método solo admite HttpMethod.Post y HttpMethod.Get como valores de la propiedad HttpRequestMessage.Method.

Para cargar contenido sin comprimir y sin cifrar desde los almacenes de datos LocalFolder o TemporaryFolder de la aplicación, usa el método Navigate con un URI que utilice ms-appdata scheme. La compatibilidad con WebView para este esquema requiere que coloque el contenido en una subcarpeta en la carpeta local o temporal. Esto permite la navegación al identificador uniforme de recursos (URI), como elarchivo ms-appdata:///local/ folder/.html y elarchivo ms-appdata:///temp/ folder/.html. (Para cargar archivos comprimidos o cifrados, consulta NavigateToLocalStreamUri).

Cada una de estas subcarpetas de primer nivel está aislada del contenido de otras subcarpetas de primer nivel. Por ejemplo, puedes ir a ms-appdata:///temp/carpeta1/archivo.html, pero en este archivo no puedes tener un vínculo a ms-appdata:///temp/carpeta2/archivo.html. Sin embargo, todavía puede vincular al contenido HTML del paquete de la aplicación mediante el esquema ms-appx-web y al contenido web mediante los esquemas http y https Uniform Resource Identifier (URI).

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

Para cargar contenido desde el paquete de la aplicación, usa el método Navigate con un URI que utilice el esquema ms-appx-web.

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

Puedes cargar contenido local a través de una resolución personalizada mediante el método NavigateToLocalStreamUri. Esto posibilita escenarios avanzados como la descarga y el almacenamiento en caché de contenido web para usarlo sin conexión, o la extracción de contenido de un archivo comprimido.

Respuesta a eventos de navegación

WebView proporciona varios eventos que puede usar para responder a los estados de carga de contenido y navegación. Los eventos se producen en el orden siguiente para el contenido raíz de 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 : se produce cuando WebView ha empezado a cargar contenido nuevo.
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 : se produce cuando WebView ha terminado de analizar el contenido HTML actual.
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();
    }
}

Los eventos similares se producen en el mismo orden para cada iframe en el contenido de WebView:

Respuesta a posibles problemas

Puede responder a posibles problemas con el contenido, como scripts de larga duración, contenido que WebView no puede cargar y advertencias de contenido no seguro.

Puede parecer que la aplicación no responde mientras se ejecutan scripts. El evento LongRunningScriptDetected se produce periódicamente mientras WebView ejecuta JavaScript y proporciona una oportunidad para interrumpir el script. Para determinar cuánto tiempo se ha estado ejecutando el script, comprueba la propiedad ExecutionTime de WebViewLongRunningScriptDetectedEventArgs. Para detener el script, establece la propiedad StopPageScriptExecution de los argumentos del evento en true. El script detenido no se ejecutará de nuevo a menos que se vuelva a cargar durante una navegación WebView posterior.

El control WebView no puede hospedar tipos de archivo arbitrarios. Cuando se intenta cargar contenido que webView no puede hospedar, se produce el evento UnviewableContentIdentified . Puedes controlar este evento y notificar al usuario, o usar la clase Launcher para redirigir el archivo a un explorador externo o a otra aplicación.

Del mismo modo, el evento UnsupportedUriSchemeIdentified se produce cuando se invoca un esquema de identificador uniforme de recursos (URI) que no se admite en el contenido web, como fbconnect:// o mailto://. Puede controlar este evento para proporcionar un comportamiento personalizado en lugar de permitir que el iniciador del sistema predeterminado inicie el identificador uniforme de recursos (URI).

El evento UnsafeContentWarningDisplaying se produce cuando WebView muestra una página de advertencia para el contenido notificado como no seguro por el filtro SmartScreen. Si el usuario elige continuar con la navegación, la navegación posterior en esa página no mostrará la advertencia ni activará el evento.

Control de casos especiales para el contenido de WebView

Puedes usar la propiedad ContainsFullScreenElement y el evento ContainsFullScreenElementChanged para detectar el estado de pantalla completa, responder al mismo y habilitar esta experiencia para el contenido web, por ejemplo, para reproducir vídeo de pantalla completa. Por ejemplo, puedes usar el evento ContainsFullScreenElementChanged para cambiar el tamaño de WebView para ocupar la totalidad de la vista de la aplicación o, como se muestra en el ejemplo siguiente, coloca una aplicación ventanada en modo de pantalla completa cuando se desea una experiencia web de pantalla completa.

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

Puedes usar el evento NewWindowRequested para controlar los casos en los que el contenido web hospedado solicite que se muestre una nueva ventana, como una ventana emergente. Puedes usar otro control WebView para mostrar el contenido de la ventana solicitada.

Usa el evento PermissionRequested para habilitar características web que requieran funciones especiales. Actualmente, incluyen la geolocalización, el almacenamiento IndexedDB, y el audio y vídeo del usuario (por ejemplo, de un micrófono o una cámara web). Aunque la aplicación tenga acceso a la ubicación o el contenido multimedia del usuario, es necesario declarar esta funcionalidad en el manifiesto de la aplicación. Por ejemplo, una aplicación que usa la geolocalización precisa las siguientes declaraciones de funcionalidades como mínimo en Package.appxmanifest:

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

Además de administrar mediante la aplicación el evento PermissionRequested, el usuario debe aprobar los cuadros de diálogo estándar del sistema para que la aplicación solicite las funciones multimedia o de ubicación que se quieren habilitar.

En el siguiente ejemplo, una aplicación permite la geolocalización en un mapa de 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();
    }
}

Si la aplicación requiere la entrada del usuario u otras operaciones asincrónicas para responder a una solicitud de permiso, usa el método Defer de WebViewPermissionRequest para crear un elemento WebViewDeferredPermissionRequest sobre el que se pueda actuar más adelante. Consulta WebViewPermissionRequest.Defer.

Si los usuarios deben cerrar sesión de forma segura en un sitio web hospedado en WebView, o en otros casos cuando la seguridad es importante, llame al método estático ClearTemporaryWebDataAsync para borrar todo el contenido almacenado localmente en caché de una sesión de WebView. Esto impide que usuarios malintencionados obtengan acceso a información confidencial.

Interacción con contenido de WebView

Puede interactuar con el contenido de WebView mediante el método InvokeScriptAsync para invocar o insertar script en el contenido de WebView y el evento ScriptNotify para obtener información del contenido de WebView.

Para invocar JavaScript dentro del contenido de WebView, use el método InvokeScriptAsync . El script invocado solo puede devolver valores de cadena.

Por ejemplo, si el contenido de un objeto WebView denominado contiene una función denominada webViewAsetDate que toma 3 parámetros, puede invocarlo como este.

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

Puedes usar InvokeScriptAsync con la función eval de JavaScript para insertar contenido en la página web.

Aquí, el texto de un TextBox XAML (nameTextBox.Text) se escribe en un div en una página HTML hospedada en 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 });
}

Los scripts del contenido de WebView pueden usar window.external.notify con un parámetro de cadena para devolver información a la aplicación. Para recibir estos mensajes, controla el evento ScriptNotify.

Para permitir que una página web externa active el evento ScriptNotify al llamar a window.external.notify, debe incluir el identificador uniforme de recursos (URI) de la página en la sección ApplicationContentUriRules del manifiesto de la aplicación. (Puede hacerlo en Microsoft Visual Studio en la pestaña URI de contenido del diseñador Package.appxmanifest). Los URI de esta lista deben usar HTTPS y pueden contener caracteres comodín de subdominio (por ejemplo, https://.microsoft.com), pero no pueden contener caracteres comodín de dominio (por ejemplo, https://.com y https://.). El requisito del manifiesto no se aplica al contenido que se origina en el paquete de la aplicación, que usa un URI ms-local-stream:// o se carga mediante NavigateToString.

Acceso al Windows Runtime en WebView

A partir de Windows 10, puedes usar el método AddWebAllowedObject para insertar una instancia de una clase nativa desde un componente de Windows Runtime en el contexto de JavaScript de WebView. Esto permite el acceso total a los métodos, propiedades y eventos nativos de ese objeto en el contenido de JavaScript de ese WebView. La clase se debe representar con el atributo AllowForWeb.

Por ejemplo, este código inserta una instancia de MyClass importada de un componente de Windows Runtime en WebView.

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

Para obtener más información, consulta WebView.AddWebAllowedObject.

Además, se puede permitir que el contenido de JavaScript de confianza en WebView acceda directamente a Windows RuntimeAPI. Esto proporciona funcionalidades nativas eficaces para las aplicaciones web hospedadas en WebView. Para habilitar esta característica, se debe agregar el identificador uniforme de recursos (URI) para el contenido de confianza a la lista de permitidos en ApplicationContentUriRules de la aplicación en Package.appxmanifest, con WindowsRuntimeAccess establecido específicamente en "all".

Este ejemplo muestra una sección del manifiesto de la aplicación. En este caso, un identificador uniforme de recursos (URI) local tiene acceso al 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>

Opciones de hospedaje de contenido web

A partir de Windows 10, puedes usar la propiedad WebView.Settings (de tipo WebViewSettings) para controlar si JavaScript e IndexedDB están habilitados. Por ejemplo, si usa WebView para mostrar contenido estrictamente estático, es posible que desee deshabilitar JavaScript para obtener el mejor rendimiento.

Captura de contenido de WebView

Para habilitar el uso compartido de contenido de WebView con otras aplicaciones, use el método CaptureSelectedContentToDataPackageAsync , que devuelve el contenido seleccionado como DataPackage. Este método es asincrónico, por lo que debes usar un aplazamiento para evitar que el controlador de evento DataRequested actúe antes de que finalice la llamada asincrónica.

Para obtener una imagen preliminar del contenido actual de WebView, use el método CapturePreviewToStreamAsync . Este método crea una imagen del contenido actual y la escribe en la secuencia especificada.

Modos de ejecución

De forma predeterminada, el contenido de WebView se hospeda en el subproceso de interfaz de usuario en los dispositivos de la familia de dispositivos de escritorio y desactiva el subproceso de interfaz de usuario en todos los demás dispositivos. Puedes usar la propiedad estática WebView.DefaultExecutionMode para consultar el comportamiento del subproceso predeterminado para el cliente actual. Si es necesario, puedes usar el constructor WebView(WebViewExecutionMode) para invalidar este comportamiento.

Los valores admitidos de WebViewExecutionMode son:

  • SameThread : el contenido de WebView se hospeda en el subproceso de interfaz de usuario.
  • SeparateThread : el contenido de WebView se hospeda en un subproceso independiente fuera del subproceso de la interfaz de usuario.
  • SeparateProcess : (Windows 10, versión 1803 o posterior) El contenido de WebView se hospeda en un proceso independiente fuera del proceso de la aplicación. Todas las instancias de WebView de una aplicación comparten el mismo proceso independiente, no hay un proceso independiente por instancia de WebView.

Cuando se ejecuta en un proceso independiente, WebView exibits dos diferencias de comportamiento:

  • El proceso WebView podría finalizar. Puede recibir una notificación de esto escuchando el evento SeparateProcessLost .
  • El proceso WebView podría rechazar de forma asincrónica el foco del teclado. En este caso, el método WebView.Focus devuelve true y, a continuación, inmediatamente (pero asincrónicamente), el foco se aleja de WebView. (Otras formas de mover el foco se comportan de forma similar, como FocusManager.TryMoveFocus). Puedes realizar un seguimiento de esto de forma más explícita mediante las API FocusManager.TryFocusAsync o FocusManager.TryMoveFocusAsync .

En este ejemplo se muestra cómo crear un control WebView que se ejecuta en un proceso independiente de la aplicación host y se volverá a crear si se pierde el proceso independiente.

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

Nota

Puede haber problemas de rendimiento al hospedar contenido en el subproceso de interfaz de usuario en dispositivos móviles, por lo que asegúrese de probar en todos los dispositivos de destino al cambiar DefaultExecutionMode.

Una vista web que hospeda contenido fuera del subproceso de interfaz de usuario no es compatible con los controles primarios que requieren gestos para propagarse desde el control WebView al elemento primario, como FlipView, ScrollViewer y otros controles relacionados. Estos controles no podrán recibir gestos iniciados en webView fuera del subproceso. Además, no se admite directamente la impresión de contenido web desde subprocesos. Deberás imprimir los elementos con un relleno WebViewBrush.

Comportamiento de foco para WebView en un proceso independiente

Tanto si se ejecuta en el proceso de la aplicación como en un proceso independiente, puede establecer el foco en un objeto WebView llamando al método WebView.Focus. Esto equivale a los métodos Control.Focus e Hyperlink.Focus (tenga en cuenta que WebView no deriva de Control).

Del mismo modo, varios métodos de la clase FocusManager pueden afectar a un Objeto WebView (o Control o Hipervínculo): TryMoveFocus, FindNextFocusableElement, FindLastFocusableElement y GetFocusedElement. Por ejemplo, TryMoveFocus mueve el foco a un Objeto WebView y GetFocusedElement devuelve un Objeto WebView que tiene el foco.

Por último, al mover el foco hacia o desde un control WebView, se generan eventos de foco, tanto en el propio WebView como en el elemento que pierde o recibe el foco. Los eventos son LosingFocus, LostFocus, GettingFocus y GotFocus. Por ejemplo, cuando el foco se mueve de un control a una vista web, el control generará eventos LosingFocus y LostFocus, y WebView generará eventos GettingFocus y GotFocus.

Cuando webView se ejecuta en un proceso independiente, el comportamiento de estas API cambia ligeramente. Suponiendo que webView es centrable, el método WebView.Focus devolverá true (correcto), pero el foco aún no se ha movido. Lo mismo ocurre si en lugar del método WebView.Focus, se llama a FocusManager.TryMoveFocus e identifica un WebView como el siguiente elemento con foco.

Las diferencias en el comportamiento son:

  • FocusManager.GetFocusedElement no devuelve WebView a menos que se complete la operación asincrónica.
  • El control que pierde el foco recibirá su evento LosingFocus de forma sincrónica; sin embargo, no recibirá LostFocus a menos que se complete la operación asincrónica.
  • Del mismo modo, el evento GettingFocus se producirá en webView sincrónicamente; sin embargo, el evento GotFocus no se generará a menos que se complete la operación asincrónica o hasta que se complete la operación asincrónica.

Ninguno de estos cambios si llamas a FocusManager.TryFocusAsync en su lugar. Sin embargo, el método asincrónico ofrece la oportunidad de determinar si el cambio de foco se realizó correctamente.

Llamar a FocusManager.TryMoveFocusAsync en un elemento distinto de WebView en un proceso independiente se completará sincrónicamente.

En este ejemplo se muestra cómo mover el foco al siguiente elemento lógico, pero si se produce un error, restaure el foco en su ubicación 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 alertas

Si una página web hospedada en webView usa la función Alerta de JavaScript, no se mostrará. Esto es por diseño para todas las versiones de WebView.

Es posible que pueda interceptar la información mostrada por una alerta y hacer lo que desea con ella en la aplicación host. Si esto es posible depende de cómo se escribe la página y si tiene el control de ella. Hay disponible un ejemplo que muestra una posible técnica para hacerlo. El ejemplo se escribe para Windows 8.1 y Windows Phone 8.1, pero también funcionará para las aplicaciones que usan el Plataforma universal de Windows (UWP). Sin embargo, esto podría no funcionar en todos los escenarios.

Cómo interceptar alertas de JavaScript en WebView en el ejemplo de aplicaciones universales de Windows

Notas de las versiones anteriores

Windows 8.1

Las siguientes API de WebView están en desuso en Windows 8.1:

Solo en Windows, puedes controlar el evento UnsafeContentWarningDisplaying . Este evento se produce cuando WebView muestra una página de advertencia para el contenido notificado como no seguro por el filtro SmartScreen. Si el usuario elige continuar con la navegación, la navegación posterior en esa página no mostrará la advertencia ni activará el evento. Este evento no se implementa para Windows Phone.

Cuando se invoca JavaScript dentro de WebView llamando al método InvokeScriptAsync , no se admiten funciones que requieren una ventana secundaria, como Alert.

Windows Phone 8

El evento UnsafeContentWarningDisplaying no se implementa para Windows Phone antes de Windows 10.

Windows 8

Estos comentarios solo se aplican a las aplicaciones compiladas para Windows 8, incluso cuando se ejecutan en Windows 8.1 o posterior.

En Windows 8, WebView tiene la característica de que otras regiones de interfaz de usuario, como los controles, no se pueden representar encima de WebView. Este "problema del espacio aéreo" se debe a cómo se controlan internamente las regiones de ventana, especialmente cómo se procesan los eventos de entrada y cómo dibuja la pantalla. Si desea representar contenido HTML y colocar también otros elementos de la interfaz de usuario sobre ese contenido HTML, debe usar WebViewBrush como área de representación. WebView todavía proporciona la información de origen HTML y hace referencia a webView a través de la propiedad SourceName . WebViewBrush no tiene esta limitación de superposición.

Si desea mostrar una vista web interactiva que solo ocasionalmente tiene contenido superpuesto (por ejemplo, una lista desplegable o una barra de aplicaciones), puede ocultar temporalmente el control WebView cuando sea necesario, reemplazando por un elemento mediante un relleno de WebViewBrush . A continuación, cuando el contenido superpuesto ya no está presente, puede volver a mostrar la vista web original.

Nota

El "problema del espacio aéreo" se ha corregido a partir de Windows 8.1 y no se aplica a las aplicaciones destinadas a Windows 8.1 o Windows 10.

WebView siempre usa Internet Explorer 10 en modo de documento.

Historial de versiones

Versión de Windows Versión del SDK Valor agregado
1607 14393 XYFocusDown
1607 14393 XYFocusLeft
1607 14393 XYFocusRight
1607 14393 XYFocusUp
1803 17134 SeparateProcessLost
1809 17763 WebResourceRequested

Constructores

WebView()

Inicializa una nueva instancia de la clase WebView .

WebView(WebViewExecutionMode)

Inicializa una nueva instancia de la clase WebView con el modo de ejecución especificado.

Propiedades

AccessKey

Obtiene o establece la clave de acceso (mnemonic) para este elemento.

(Heredado de UIElement)
AccessKeyScopeOwner

Obtiene o establece un elemento de origen que proporciona el ámbito de la clave de acceso para este elemento, incluso si no está en el árbol visual del elemento de origen.

(Heredado de UIElement)
ActualHeight

Obtiene el alto representado de un frameworkElement. Vea la sección Comentarios.

(Heredado de FrameworkElement)
ActualOffset

Obtiene la posición de este UIElement, en relación con su elemento primario, calculado durante el paso de organización del proceso de diseño.

(Heredado de UIElement)
ActualSize

Obtiene el tamaño que calcula este UIElement durante el paso de organización del proceso de diseño.

(Heredado de UIElement)
ActualTheme

Obtiene el tema de la interfaz de usuario que usa actualmente el elemento , que podría ser diferente del RequestedTheme.

(Heredado de FrameworkElement)
ActualWidth

Obtiene el ancho representado de un frameworkElement. Vea la sección Comentarios.

(Heredado de FrameworkElement)
AllowDrop

Obtiene o establece un valor que determina si este UIElement puede ser un destino de colocación con fines de operaciones de arrastrar y colocar.

(Heredado de UIElement)
AllowedScriptNotifyUris

Nota

AllowedScriptNotifyUris no se admite en las aplicaciones compiladas para Windows 8.1. En su lugar, actualice la sección ApplicationContentUriRules del manifiesto de la aplicación. Para obtener más información, consulta la sección Comentarios.

Obtiene o establece una lista segura de URI que pueden desencadenar eventos ScriptNotify en esta vista web.

AllowedScriptNotifyUrisProperty

Nota

AllowedScriptNotifyUrisProperty no se admite en las aplicaciones compiladas para Windows 8.1. En su lugar, actualice la sección ApplicationContentUriRules del manifiesto de la aplicación. Para obtener más información, consulta la sección Comentarios.

Identifica la propiedad de dependencia AllowedScriptNotifyUris .

AllowFocusOnInteraction

Obtiene o establece un valor que indica si el elemento obtiene automáticamente el foco cuando el usuario interactúa con él.

(Heredado de FrameworkElement)
AllowFocusWhenDisabled

Obtiene o establece si un control deshabilitado puede recibir el foco.

(Heredado de FrameworkElement)
AnyScriptNotifyUri

Nota

AnyScriptNotifyUri no se admite en las aplicaciones compiladas para Windows 8.1. En su lugar, actualice la sección ApplicationContentUriRules del manifiesto de la aplicación. Para obtener más información, consulta la sección Comentarios.

Obtiene un valor que se puede usar para establecer la propiedad AllowedScriptNotifyUris para indicar que cualquier página puede desencadenar eventos ScriptNotify en esta Vista web.

BaseUri

Obtiene un identificador uniforme de recursos (URI) que representa el identificador uniforme de recursos (URI) base para un objeto construido con XAML en tiempo de carga XAML. Esta propiedad es útil para la resolución del identificador uniforme de recursos (URI) en tiempo de ejecución.

(Heredado de FrameworkElement)
CacheMode

Obtiene o establece un valor que indica que el contenido representado debe almacenarse en caché como un mapa de bits compuesto cuando sea posible.

(Heredado de UIElement)
CanBeScrollAnchor

Obtiene o establece un valor que indica si UIElement puede ser un candidato para el delimitador de desplazamiento.

(Heredado de UIElement)
CanDrag

Obtiene o establece un valor que indica si el elemento se puede arrastrar como datos en una operación de arrastrar y colocar.

(Heredado de UIElement)
CanGoBack

Obtiene un valor que indica si hay al menos una página en el historial de navegación hacia atrás.

CanGoBackProperty

Identifica la propiedad de dependencia CanGoBack .

CanGoForward

Obtiene un valor que indica si hay al menos una página en el historial de navegación hacia delante.

CanGoForwardProperty

Identifica la propiedad de dependencia CanGoForward .

CenterPoint

Obtiene o establece el punto central del elemento, que es el punto sobre el que se produce la rotación o el escalado. Afecta a la posición de representación del elemento.

(Heredado de UIElement)
Clip

Obtiene o establece el objeto RectangleGeometry utilizado para definir el esquema del contenido de un uiElement.

(Heredado de UIElement)
CompositeMode

Obtiene o establece una propiedad que declara modos de composición y combinación alternativos para el elemento en su diseño y ventana primarios. Esto es relevante para los elementos implicados en una interfaz de usuario de XAML/Microsoft DirectX mixta.

(Heredado de UIElement)
ContainsFullScreenElement

Obtiene un valor que indica si WebView contiene un elemento que admite pantalla completa.

ContainsFullScreenElementProperty

Identifica la propiedad de dependencia ContainsFullScreenElement .

ContextFlyout

Obtiene o establece el control flotante asociado a este elemento.

(Heredado de UIElement)
DataContext

Obtiene o establece el contexto de datos de un FrameworkElement. Un uso común de un contexto de datos es cuando frameworkElement usa la extensión de marcado {Binding} y participa en el enlace de datos.

(Heredado de FrameworkElement)
DataTransferPackage

Nota

DataTransferPackage puede modificarse o no estar disponible para las versiones después de Windows 8.1. En su lugar, use CaptureSelectedContentToDataPackageAsync.

Obtiene un DataPackage del Portapapeles como se pasa a WebView.

DataTransferPackageProperty

Nota

DataTransferPackageProperty puede modificarse o no estar disponible para las versiones después de Windows 8.1. En su lugar, use CaptureSelectedContentToDataPackageAsync.

Identifica la propiedad de dependencia DataTransferPackage .

DefaultBackgroundColor

Obtiene o establece el color que se va a usar como fondo de WebView cuando el contenido HTML no especifica un color.

DefaultBackgroundColorProperty

Identifica la propiedad de dependencia DefaultBackgroundColor .

DefaultExecutionMode

Obtiene el comportamiento de subproceso predeterminado de las instancias de WebView en la aplicación actual.

DeferredPermissionRequests

Obtiene una colección de solicitudes de permisos que están esperando que se concedan o denieguen.

DesiredSize

Obtiene el tamaño que calcula este UIElement durante el paso de medida del proceso de diseño.

(Heredado de UIElement)
Dispatcher

Obtiene el CoreDispatcher al que está asociado este objeto. CoreDispatcher representa una instalación que puede acceder a DependencyObject en el subproceso de la interfaz de usuario, incluso si un subproceso que no es de interfaz de usuario inicia el código.

(Heredado de DependencyObject)
DocumentTitle

Obtiene el título de la página que se muestra actualmente en WebView.

DocumentTitleProperty

Identifica la propiedad de dependencia DocumentTitle .

ExecutionMode

Obtiene un valor que indica si WebView hospeda contenido en el subproceso de interfaz de usuario o en un subproceso que no es de interfaz de usuario.

ExitDisplayModeOnAccessKeyInvoked

Obtiene o establece un valor que especifica si se descarta la presentación de la clave de acceso cuando se invoca una clave de acceso.

(Heredado de UIElement)
FlowDirection

Obtiene o establece la dirección en la que el texto y otros elementos de la interfaz de usuario fluyen dentro de cualquier elemento primario que controle su diseño. Esta propiedad se puede establecer en LeftToRight o RightToLeft. Establecer FlowDirection en RightToLeft en cualquier elemento establece la alineación a la derecha, el orden de lectura a derecha a izquierda y el diseño del control para que fluya de derecha a izquierda.

(Heredado de FrameworkElement)
FocusVisualMargin

Obtiene o establece el margen exterior del objeto visual de foco para un FrameworkElement.

(Heredado de FrameworkElement)
FocusVisualPrimaryBrush

Obtiene o establece el pincel utilizado para dibujar el borde exterior de un HighVisibility objeto visual o Reveal de foco para un FrameworkElement.

(Heredado de FrameworkElement)
FocusVisualPrimaryThickness

Obtiene o establece el grosor del borde exterior de un HighVisibility objeto visual de foco o Reveal para frameworkElement.

(Heredado de FrameworkElement)
FocusVisualSecondaryBrush

Obtiene o establece el pincel utilizado para dibujar el borde interno de un HighVisibility objeto visual de foco o Reveal para frameworkElement.

(Heredado de FrameworkElement)
FocusVisualSecondaryThickness

Obtiene o establece el grosor del borde interno de un HighVisibility objeto visual de foco o Reveal para frameworkElement.

(Heredado de FrameworkElement)
Height

Obtiene o establece el alto sugerido de frameworkElement.

(Heredado de FrameworkElement)
HighContrastAdjustment

Obtiene o establece un valor que indica si el marco ajusta automáticamente las propiedades visuales del elemento cuando se habilitan los temas de contraste alto.

(Heredado de UIElement)
HorizontalAlignment

Obtiene o establece las características de alineación horizontal que se aplican a un FrameworkElement cuando se compone en un elemento primario de diseño, como un panel o un control de elementos.

(Heredado de FrameworkElement)
IsAccessKeyScope

Obtiene o establece un valor que indica si un elemento define su propio ámbito de clave de acceso.

(Heredado de UIElement)
IsDoubleTapEnabled

Obtiene o establece un valor que determina si el evento DoubleTapped puede originarse desde ese elemento.

(Heredado de UIElement)
IsHitTestVisible

Obtiene o establece si el área contenida de este UIElement puede devolver valores true para las pruebas de posicionamiento.

(Heredado de UIElement)
IsHoldingEnabled

Obtiene o establece un valor que determina si el evento Holding puede originarse en ese elemento.

(Heredado de UIElement)
IsLoaded

Obtiene un valor que indica si el elemento se ha agregado al árbol de elementos y está listo para la interacción.

(Heredado de FrameworkElement)
IsRightTapEnabled

Obtiene o establece un valor que determina si el evento RightTapped puede originarse en ese elemento.

(Heredado de UIElement)
IsTapEnabled

Obtiene o establece un valor que determina si el evento Tapped puede originarse en ese elemento.

(Heredado de UIElement)
KeyboardAcceleratorPlacementMode

Obtiene o establece un valor que indica si la información sobre herramientas del control muestra la combinación de teclas para su acelerador de teclado asociado.

(Heredado de UIElement)
KeyboardAcceleratorPlacementTarget

Obtiene o establece un valor que indica la información sobre herramientas de control que muestra la combinación de teclas de aceleración.

(Heredado de UIElement)
KeyboardAccelerators

Obtiene la colección de combinaciones de teclas que invocan una acción mediante el teclado.

Normalmente, los aceleradores se asignan a botones o elementos de menú.

Ejemplo de un menú que muestra aceleradores de teclado para varios elementos de menú
Ejemplo de un menú que muestra aceleradores de teclado para varios elementos de menú

(Heredado de UIElement)
KeyTipHorizontalOffset

Obtiene o establece un valor que indica la distancia izquierda o derecha que se coloca la sugerencia de clave en relación con uiElement.

(Heredado de UIElement)
KeyTipPlacementMode

Obtiene o establece un valor que indica dónde se coloca la sugerencia de clave de acceso en relación con el límite de UIElement.

(Heredado de UIElement)
KeyTipTarget

Obtiene o establece un valor que indica el elemento de destino de la sugerencia de clave de acceso.

(Heredado de UIElement)
KeyTipVerticalOffset

Obtiene o establece un valor que indica hasta dónde se coloca la sugerencia de teclas en relación con el elemento de la interfaz de usuario.

(Heredado de UIElement)
Language

Obtiene o establece la información del lenguaje de localización o globalización que se aplica a un FrameworkElement y también a todos los elementos secundarios del frameworkElement actual en la representación del objeto y en la interfaz de usuario.

(Heredado de FrameworkElement)
Lights

Obtiene la colección de objetos XamlLight adjuntos a este elemento.

(Heredado de UIElement)
ManipulationMode

Obtiene o establece el valor ManipulationModes usado para el comportamiento uiElement y la interacción con gestos. Establecer este valor permite controlar los eventos de manipulación de este elemento en el código de la aplicación.

(Heredado de UIElement)
Margin

Obtiene o establece el margen externo de un FrameworkElement.

(Heredado de FrameworkElement)
MaxHeight

Obtiene o establece la restricción de altura máxima de un FrameworkElement.

(Heredado de FrameworkElement)
MaxWidth

Obtiene o establece la restricción de ancho máximo de un FrameworkElement.

(Heredado de FrameworkElement)
MinHeight

Obtiene o establece la restricción de alto mínima de un FrameworkElement.

(Heredado de FrameworkElement)
MinWidth

Obtiene o establece la restricción de ancho mínimo de un FrameworkElement.

(Heredado de FrameworkElement)
Name

Obtiene o establece el nombre de identificación del objeto. Cuando un procesador XAML crea el árbol de objetos a partir del marcado XAML, el código en tiempo de ejecución puede hacer referencia al objeto declarado por XAML por este nombre.

(Heredado de FrameworkElement)
Opacity

Obtiene o establece el grado de opacidad del objeto.

(Heredado de UIElement)
OpacityTransition

Obtiene o establece scalarTransition que anima los cambios realizados en la propiedad Opacity.

(Heredado de UIElement)
Parent

Obtiene el objeto primario de este FrameworkElement en el árbol de objetos.

(Heredado de FrameworkElement)
PointerCaptures

Obtiene el conjunto de todos los punteros capturados, representados como valores de puntero .

(Heredado de UIElement)
Projection

Obtiene o establece la proyección de perspectiva (efecto 3D) que se aplicará al representar este elemento.

(Heredado de UIElement)
RenderSize

Obtiene el tamaño de representación final de un UIElement. No se recomienda usar, vea Comentarios.

(Heredado de UIElement)
RenderTransform

Obtiene o establece información de transformación que afecta a la posición de representación de un UIElement.

(Heredado de UIElement)
RenderTransformOrigin

Obtiene o establece el punto de origen de cualquier posible transformación de representación declarada por RenderTransform, en relación con los límites de UIElement.

(Heredado de UIElement)
RequestedTheme

Obtiene o establece el tema de la interfaz de usuario que usa UIElement (y sus elementos secundarios) para la determinación de recursos. El tema de la interfaz de usuario que especifique con RequestedTheme puede invalidar el requestedTheme de nivel de aplicación.

(Heredado de FrameworkElement)
Resources

Obtiene el diccionario de recursos definido localmente. En XAML, puedes establecer elementos de recursos como elementos de objeto secundarios de un frameworkElement.Resources elemento de propiedad, a través de la sintaxis de colección implícita xaml.

(Heredado de FrameworkElement)
Rotation

Obtiene o establece el ángulo de rotación en sentido de las agujas del reloj, en grados. Gira en relación con rotationAxis y CenterPoint. Afecta a la posición de representación del elemento.

(Heredado de UIElement)
RotationAxis

Obtiene o establece el eje que se va a girar el elemento.

(Heredado de UIElement)
RotationTransition

Obtiene o establece scalarTransition que anima los cambios a la propiedad Rotation.

(Heredado de UIElement)
Scale

Obtiene o establece la escala del elemento. Escala en relación con el CenterPoint del elemento. Afecta a la posición de representación del elemento.

(Heredado de UIElement)
ScaleTransition

Obtiene o establece vector3Transition que anima los cambios en la propiedad Scale.

(Heredado de UIElement)
Settings

Obtiene un objeto WebViewSettings que contiene propiedades para habilitar o deshabilitar características de WebView .

Shadow

Obtiene o establece el efecto de sombra convertido por el elemento .

(Heredado de UIElement)
Source

Obtiene o establece el origen del identificador uniforme de recursos (URI) del contenido HTML que se va a mostrar en el control WebView .

SourceProperty

Identifica la propiedad de dependencia Source .

Style

Obtiene o establece un estilo de instancia que se aplica a este objeto durante el diseño y la representación.

(Heredado de FrameworkElement)
TabFocusNavigation

Obtiene o establece un valor que modifica el funcionamiento de tabulación y TabIndex para este control.

(Heredado de UIElement)
Tag

Obtiene o establece un valor de objeto arbitrario que se puede usar para almacenar información personalizada sobre este objeto.

(Heredado de FrameworkElement)
Transform3D

Obtiene o establece el efecto de transformación 3D que se va a aplicar al representar este elemento.

(Heredado de UIElement)
TransformMatrix

Obtiene o establece la matriz de transformación que se va a aplicar al elemento .

(Heredado de UIElement)
Transitions

Obtiene o establece la colección de elementos de estilo Transition que se aplican a un UIElement.

(Heredado de UIElement)
Translation

Obtiene o establece la posición de representación x, y y z del elemento.

(Heredado de UIElement)
TranslationTransition

Obtiene o establece vector3Transition que anima los cambios en la propiedad Translation.

(Heredado de UIElement)
Triggers

Obtiene la colección de desencadenadores para las animaciones definidas para un FrameworkElement. No se suele utilizar. Vea la sección Comentarios.

(Heredado de FrameworkElement)
UIContext

Obtiene el identificador de contexto del elemento.

(Heredado de UIElement)
UseLayoutRounding

Obtiene o establece un valor que determina si la representación del objeto y su subárbol visual deben usar el comportamiento de redondeo que alinea la representación en píxeles enteros.

(Heredado de UIElement)
VerticalAlignment

Obtiene o establece las características de alineación vertical que se aplican a un FrameworkElement cuando se compone en un objeto primario, como un panel o un control de elementos.

(Heredado de FrameworkElement)
Visibility

Obtiene o establece la visibilidad de un uiElement. Un UIElement que no está visible no se representa y no comunica su tamaño deseado al diseño.

(Heredado de UIElement)
Width

Obtiene o establece el ancho de un FrameworkElement.

(Heredado de FrameworkElement)
XamlRoot

Obtiene o establece el en el XamlRoot que se está viendo este elemento.

(Heredado de UIElement)
XYFocusDown

Obtiene o establece el objeto que obtiene el foco cuando un usuario presiona el Panel direccional (D-pad) hacia abajo.

XYFocusDownNavigationStrategy

Obtiene o establece un valor que especifica la estrategia utilizada para determinar el elemento de destino de una navegación hacia abajo.

(Heredado de UIElement)
XYFocusDownProperty

Identifica la propiedad de dependencia XYFocusDown .

XYFocusKeyboardNavigation

Obtiene o establece un valor que habilita o deshabilita la navegación mediante las flechas direccionales del teclado.

(Heredado de UIElement)
XYFocusLeft

Obtiene o establece el objeto que obtiene el foco cuando un usuario presiona el Panel direccional (D-pad) a la izquierda.

XYFocusLeftNavigationStrategy

Obtiene o establece un valor que especifica la estrategia utilizada para determinar el elemento de destino de un panel de navegación izquierdo.

(Heredado de UIElement)
XYFocusLeftProperty

Identifica la propiedad de dependencia XYFocusLeft .

XYFocusRight

Obtiene o establece el objeto que obtiene el foco cuando un usuario presiona el Panel direccional (D-pad) a la derecha.

XYFocusRightNavigationStrategy

Obtiene o establece un valor que especifica la estrategia utilizada para determinar el elemento de destino de una navegación derecha.

(Heredado de UIElement)
XYFocusRightProperty

Identifica la propiedad de dependencia XYFocusRight .

XYFocusUp

Obtiene o establece el objeto que obtiene el foco cuando un usuario presiona el Panel direccional (D-pad) hacia arriba.

XYFocusUpNavigationStrategy

Obtiene o establece un valor que especifica la estrategia utilizada para determinar el elemento de destino de una navegación ascendente.

(Heredado de UIElement)
XYFocusUpProperty

Identifica la propiedad de dependencia XYFocusUp .

Métodos

AddHandler(RoutedEvent, Object, Boolean)

Agrega un controlador de eventos enrutados para un evento enrutado especificado. Para ello, agrega el controlador a la colección de controladores en el elemento actual. Especifique handledEventsToo como true para que se invoque el controlador proporcionado aunque el evento se controle en otro lugar.

(Heredado de UIElement)
AddWebAllowedObject(String, Object)

Agrega un objeto de Windows Runtime nativo como parámetro global al documento de nivel superior dentro de un objeto WebView.

Arrange(Rect)

Coloca los objetos secundarios y determina un tamaño para un UIElement. Los objetos primarios que implementan el diseño personalizado para sus elementos secundarios deben llamar a este método desde sus implementaciones de invalidación de diseño para formar una actualización de diseño recursiva.

(Heredado de UIElement)
ArrangeOverride(Size)

Proporciona el comportamiento del paso "Organizar" del diseño. Las clases pueden invalidar este método para definir su propio comportamiento de paso "Organizar".

(Heredado de FrameworkElement)
BuildLocalStreamUri(String, String)

Crea un URI que puede pasar a NavigateToLocalStreamUri.

CancelDirectManipulations()

Cancela el procesamiento de manipulación directa en curso (movimiento panorámico o zoom definido por el sistema) en cualquier elemento primario ScrollViewer que contenga el uiElement actual.

(Heredado de UIElement)
CapturePointer(Pointer)

Establece la captura de puntero en un uiElement. Una vez capturado, solo el elemento que tiene captura activará eventos relacionados con el puntero.

(Heredado de UIElement)
CapturePreviewToStreamAsync(IRandomAccessStream)

Crea una imagen del contenido actual de WebView y lo escribe en la secuencia especificada.

CaptureSelectedContentToDataPackageAsync()

Obtiene de forma asincrónica un DataPackage que contiene el contenido seleccionado dentro de WebView.

ClearTemporaryWebDataAsync()

Borra la memoria caché de WebView y los datos de IndexedDB .

ClearValue(DependencyProperty)

Borra el valor local de una propiedad de dependencia.

(Heredado de DependencyObject)
DeferredPermissionRequestById(UInt32)

Devuelve la solicitud de permiso diferida con el identificador especificado.

FindName(String)

Recupera un objeto que tiene el nombre de identificador especificado.

(Heredado de FrameworkElement)
FindSubElementsForTouchTargeting(Point, Rect)

Habilita una subclase UIElement para exponer elementos secundarios que ayudan a resolver el destino táctil.

(Heredado de UIElement)
Focus(FocusState)

Establece el foco de entrada en WebView.

GetAnimationBaseValue(DependencyProperty)

Devuelve cualquier valor base establecido para una propiedad de dependencia, que se aplicaría en los casos en los que una animación no está activa.

(Heredado de DependencyObject)
GetBindingExpression(DependencyProperty)

Devuelve bindingExpression que representa el enlace en la propiedad especificada.

(Heredado de FrameworkElement)
GetChildrenInTabFocusOrder()

Permite que una subclase UIElement exponga los elementos secundarios que participan en el foco de tabulación.

(Heredado de UIElement)
GetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia de dependencyObject.

(Heredado de DependencyObject)
GoBack()

Navega por WebView a la página anterior del historial de navegación.

GoForward()

Navega por WebView a la página siguiente del historial de navegación.

GoToElementStateCore(String, Boolean)

Cuando se implementa en una clase derivada, habilita la construcción por estado de un árbol visual para una plantilla de control en el código, en lugar de cargar XAML para todos los estados en el inicio del control.

(Heredado de FrameworkElement)
InvalidateArrange()

Invalida el estado de organización (diseño) de un uiElement. Después de la invalidación, UIElement tendrá actualizado su diseño, que se producirá de forma asincrónica.

(Heredado de UIElement)
InvalidateMeasure()

Invalida el estado de medición (diseño) de un UIElement.

(Heredado de UIElement)
InvalidateViewport()

Invalida el estado de la ventanilla de un uiElement que se usa para calcular la ventanilla efectiva.

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

Nota

InvokeScript puede modificarse o no estar disponible para las versiones después de Windows 8.1. En su lugar, use InvokeScriptAsync.

Ejecuta la función de script especificada desde el HTML cargado actualmente, con argumentos específicos.

InvokeScriptAsync(String, IIterable<String>)

Ejecuta la función de script especificada desde el HTML cargado actualmente, con argumentos específicos, como una acción asincrónica.

Measure(Size)

Novedades desiredSize de un uiElement. Normalmente, los objetos que implementan el diseño personalizado para sus elementos secundarios de diseño llaman a este método desde sus propias implementaciones measureOverride para formar una actualización de diseño recursiva.

(Heredado de UIElement)
MeasureOverride(Size)

Proporciona el comportamiento del paso "Measure" del ciclo de diseño. Las clases pueden invalidar este método para definir su propio comportamiento de paso de "Medida".

(Heredado de FrameworkElement)
Navigate(Uri)

Carga el contenido HTML en el identificador uniforme de recursos (URI) especificado.

NavigateToLocalStreamUri(Uri, IUriToStreamResolver)

Carga el contenido web local en el URI especificado mediante un IUriToStreamResolver.

NavigateToString(String)

Carga el contenido HTML especificado como un nuevo documento.

NavigateWithHttpRequestMessage(HttpRequestMessage)

Navega por WebView a un URI con una solicitud POST y encabezados HTTP.

OnApplyTemplate()

Se invoca cada vez que el código de aplicación o los procesos internos (como un pase de diseño de regeneración) llaman a ApplyTemplate. En términos más sencillos, esto significa que se llama al método justo antes de que se muestre un elemento de interfaz de usuario en la aplicación. Invalide este método para influir en la lógica predeterminada posterior a la plantilla de una clase.

(Heredado de FrameworkElement)
OnBringIntoViewRequested(BringIntoViewRequestedEventArgs)

Se llama antes de que se produzca el evento BringIntoViewRequested .

(Heredado de UIElement)
OnCreateAutomationPeer()

Cuando se implementa en una clase derivada, devuelve implementaciones de AutomationPeer específicas de clase para la infraestructura de Automatización de la interfaz de usuario de Microsoft.

(Heredado de UIElement)
OnDisconnectVisualChildren()

Invalide este método para implementar cómo debe comportarse el diseño y la lógica cuando se quitan elementos de una propiedad secundaria o contenido específico de clase.

(Heredado de UIElement)
OnKeyboardAcceleratorInvoked(KeyboardAcceleratorInvokedEventArgs)

Se llama cuando se procesa un método abreviado de teclado (o acelerador) en la aplicación. Invalide este método para controlar cómo responde la aplicación cuando se invoca un acelerador de teclado.

(Heredado de UIElement)
OnProcessKeyboardAccelerators(ProcessKeyboardAcceleratorEventArgs)

Se llama justo antes de que se procese un método abreviado de teclado (o acelerador) en la aplicación. Se invoca cada vez que el código de aplicación o los procesos internos llaman a ProcessKeyboardAccelerators. Invalide este método para influir en el control del acelerador predeterminado.

(Heredado de UIElement)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Define una propiedad que se puede animar.

(Heredado de UIElement)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

Cuando se invalida en una clase derivada, define una propiedad que se puede animar.

(Heredado de UIElement)
ReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si se establece un valor local.

(Heredado de DependencyObject)
Refresh()

Vuelve a cargar el contenido actual en WebView.

RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una función de notificación para escuchar los cambios en una dependencyProperty específica en esta instancia de DependencyObject .

(Heredado de DependencyObject)
ReleasePointerCapture(Pointer)

Libera las capturas de puntero para la captura de un puntero específico de este UIElement.

(Heredado de UIElement)
ReleasePointerCaptures()

Libera todas las capturas de puntero que mantiene este elemento.

(Heredado de UIElement)
RemoveHandler(RoutedEvent, Object)

Quita el controlador de eventos enrutado especificado de este UIElement. Normalmente, AddHandler agregó el controlador en cuestión.

(Heredado de UIElement)
SetBinding(DependencyProperty, BindingBase)

Asocia un enlace a un FrameworkElement mediante el objeto de enlace proporcionado.

(Heredado de FrameworkElement)
SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia en dependencyObject.

(Heredado de DependencyObject)
StartAnimation(ICompositionAnimationBase)

Comienza la animación especificada en el elemento .

(Heredado de UIElement)
StartBringIntoView()

Inicia una solicitud al marco XAML para que el elemento se vea dentro de las regiones desplazables que contiene.

(Heredado de UIElement)
StartBringIntoView(BringIntoViewOptions)

Inicia una solicitud al marco XAML para que el elemento se vea mediante las opciones especificadas.

(Heredado de UIElement)
StartDragAsync(PointerPoint)

Inicia una operación de arrastrar y colocar.

(Heredado de UIElement)
Stop()

Detiene la navegación o descarga actual de WebView .

StopAnimation(ICompositionAnimationBase)

Detiene la animación especificada en el elemento .

(Heredado de UIElement)
TransformToVisual(UIElement)

Devuelve un objeto de transformación que se puede usar para transformar las coordenadas de UIElement al objeto especificado.

(Heredado de UIElement)
TryInvokeKeyboardAccelerator(ProcessKeyboardAcceleratorEventArgs)

Intenta invocar un método abreviado de teclado (o acelerador) buscando en todo el árbol visual de UIElement el acceso directo.

(Heredado de UIElement)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancela una notificación de cambio registrada anteriormente mediante una llamada a RegisterPropertyChangedCallback.

(Heredado de DependencyObject)
UpdateLayout()

Garantiza que todas las posiciones de los objetos secundarios de un UIElement se actualicen correctamente para el diseño.

(Heredado de UIElement)

Eventos

AccessKeyDisplayDismissed

Se produce cuando ya no se deben mostrar las claves de acceso.

(Heredado de UIElement)
AccessKeyDisplayRequested

Se produce cuando el usuario solicita que se muestren las claves de acceso.

(Heredado de UIElement)
AccessKeyInvoked

Se produce cuando un usuario completa una secuencia de claves de acceso.

(Heredado de UIElement)
ActualThemeChanged

Se produce cuando el valor de la propiedad ActualTheme ha cambiado.

(Heredado de FrameworkElement)
BringIntoViewRequested

Se produce cuando se llama a StartBringIntoView en este elemento o en uno de sus descendientes.

(Heredado de UIElement)
CharacterReceived

Se produce cuando la cola de entrada recibe un carácter compuesto único.

(Heredado de UIElement)
ContainsFullScreenElementChanged

Se produce cuando el estado de si WebView contiene actualmente un elemento de pantalla completa o no cambia.

ContentLoading

Se produce cuando WebView ha empezado a cargar contenido nuevo.

ContextCanceled

Se produce cuando un gesto de entrada de contexto continúa en un gesto de manipulación, para notificar al elemento que no se debe abrir el control flotante de contexto.

(Heredado de UIElement)
ContextRequested

Se produce cuando el usuario ha completado un gesto de entrada de contexto, como un clic con el botón derecho.

(Heredado de UIElement)
DataContextChanged

Se produce cuando cambia el valor de la propiedad FrameworkElement.DataContext .

(Heredado de FrameworkElement)
DOMContentLoaded

Se produce cuando WebView ha terminado de analizar el contenido HTML actual.

DoubleTapped

Se produce cuando se produce una interacción de DoubleTap no controlada en el área de prueba de posicionamiento de este elemento.

(Heredado de UIElement)
DragEnter

Se produce cuando el sistema de entrada notifica un evento de arrastre subyacente con este elemento como destino.

(Heredado de UIElement)
DragLeave

Se produce cuando el sistema de entrada notifica un evento de arrastre subyacente con este elemento como origen.

(Heredado de UIElement)
DragOver

Se produce cuando el sistema de entrada informa de un evento de arrastre subyacente con este elemento como destino potencial para colocar.

(Heredado de UIElement)
DragStarting

Se produce cuando se inicia una operación de arrastre.

(Heredado de UIElement)
Drop

Se produce cuando el sistema de entrada notifica un evento de colocación subyacente con este elemento como el destino de la colocación.

(Heredado de UIElement)
DropCompleted

Se produce cuando finaliza una operación de arrastrar y colocar con este elemento a medida que finaliza el origen.

(Heredado de UIElement)
EffectiveViewportChanged

Se produce cuando cambia la ventanilla efectiva de FrameworkElement.

(Heredado de FrameworkElement)
FrameContentLoading

Se produce cuando un fotograma de WebView ha empezado a cargar contenido nuevo.

FrameDOMContentLoaded

Se produce cuando un marco de WebView ha terminado de analizar su contenido HTML actual.

FrameNavigationCompleted

Se produce cuando un fotograma de WebView ha terminado de cargar su contenido.

FrameNavigationStarting

Se produce antes de que un fotograma de WebView navegue al nuevo contenido.

GettingFocus

Se produce antes de que un UIElement reciba el foco. Este evento se genera sincrónicamente para asegurarse de que el foco no se mueve mientras el evento se propaga.

(Heredado de UIElement)
GotFocus

Se produce cuando un UIElement recibe el foco. Este evento se genera de forma asincrónica, por lo que el foco puede moverse de nuevo antes de que se complete el propagamiento.

(Heredado de UIElement)
Holding

Se produce cuando se produce una interacción de retención no controlada en el área de prueba de posicionamiento de este elemento.

(Heredado de UIElement)
KeyDown

Se produce cuando se presiona una tecla de teclado mientras uiElement tiene el foco.

(Heredado de UIElement)
KeyUp

Se produce cuando se libera una tecla de teclado mientras uiElement tiene el foco.

(Heredado de UIElement)
LayoutUpdated

Se produce cuando cambia el diseño del árbol visual, debido a que las propiedades relevantes para el diseño cambian el valor o alguna otra acción que actualiza el diseño.

(Heredado de FrameworkElement)
LoadCompleted

Nota

LoadCompleted puede modificarse o no estar disponible para las versiones después de Windows 8.1. En su lugar, use NavigationCompleted.

Se produce cuando se completa la navegación de nivel superior y el contenido se carga en el control WebView o cuando se produce un error durante la carga.

Loaded

Se produce cuando se ha construido y agregado un frameworkElement al árbol de objetos y está listo para la interacción.

(Heredado de FrameworkElement)
Loading

Se produce cuando un FrameworkElement comienza a cargarse.

(Heredado de FrameworkElement)
LongRunningScriptDetected

Se produce periódicamente mientras WebView ejecuta JavaScript, lo que le permite detener el script.

LosingFocus

Se produce antes de que un UIElement pierda el foco. Este evento se genera sincrónicamente para asegurarse de que el foco no se mueve mientras el evento se propaga.

(Heredado de UIElement)
LostFocus

Se produce cuando un UIElement pierde el foco. Este evento se genera de forma asincrónica, por lo que el foco puede moverse de nuevo antes de que se complete el propagamiento.

(Heredado de UIElement)
ManipulationCompleted

Se produce cuando se completa una manipulación en UIElement .

(Heredado de UIElement)
ManipulationDelta

Se produce cuando el dispositivo de entrada cambia de posición durante una manipulación.

(Heredado de UIElement)
ManipulationInertiaStarting

Ocurre cuando el dispositivo de entrada pierde contacto con el objeto UIElement durante una manipulación y el inicio de la inercia.

(Heredado de UIElement)
ManipulationStarted

Se produce cuando un dispositivo de entrada inicia una manipulación en uiElement.

(Heredado de UIElement)
ManipulationStarting

Se produce cuando se crea por primera vez el procesador de manipulación.

(Heredado de UIElement)
NavigationCompleted

Se produce cuando WebView ha terminado de cargar el contenido actual o si se ha producido un error en la navegación.

NavigationFailed

Nota

NavigationFailed puede modificarse o no estar disponible para las versiones después de Windows 8.1. En su lugar, use NavigationCompleted.

Se produce cuando WebView no puede completar el intento de navegación.

NavigationStarting

Se produce antes de que WebView navegue al nuevo contenido.

NewWindowRequested

Se produce cuando un usuario realiza una acción en una vista web que hace que el contenido se abra en una nueva ventana.

NoFocusCandidateFound

Se produce cuando un usuario intenta mover el foco (a través de flechas de tabulación o direccional), pero el foco no se mueve porque no se encuentra ningún candidato de enfoque en la dirección del movimiento.

(Heredado de UIElement)
PermissionRequested

Se produce cuando una acción de un objeto WebView requiere que se conceda ese permiso.

PointerCanceled

Se produce cuando un puntero que hizo contacto pierde de forma anómala el contacto.

(Heredado de UIElement)
PointerCaptureLost

Se produce cuando la captura de puntero previamente mantenida por este elemento se mueve a otro elemento o a otro lugar.

(Heredado de UIElement)
PointerEntered

Se produce cuando un puntero entra en el área de prueba de posicionamiento de este elemento.

(Heredado de UIElement)
PointerExited

Se produce cuando un puntero sale del área de prueba de posicionamiento de este elemento.

(Heredado de UIElement)
PointerMoved

Se produce cuando un puntero se mueve mientras el puntero permanece dentro del área de prueba de posicionamiento de este elemento.

(Heredado de UIElement)
PointerPressed

Se produce cuando el dispositivo de puntero inicia una acción Press dentro de este elemento.

(Heredado de UIElement)
PointerReleased

Se produce cuando se libera el dispositivo de puntero que inició previamente una acción Press , mientras se encuentra dentro de este elemento. Tenga en cuenta que no se garantiza que el final de una acción Press active un evento PointerReleased; otros eventos pueden desencadenarse en su lugar. Para obtener más información, consulta Comentarios.

(Heredado de UIElement)
PointerWheelChanged

Se produce cuando cambia el valor delta de una rueda del puntero.

(Heredado de UIElement)
PreviewKeyDown

Se produce cuando se presiona una tecla de teclado mientras uiElement tiene el foco.

(Heredado de UIElement)
PreviewKeyUp

Se produce cuando se libera una tecla de teclado mientras uiElement tiene el foco.

(Heredado de UIElement)
ProcessKeyboardAccelerators

Se produce cuando se presiona un método abreviado de teclado (o acelerador ).

(Heredado de UIElement)
RightTapped

Se produce cuando se produce un estímulo de entrada de pulsación derecha mientras el puntero está sobre el elemento.

(Heredado de UIElement)
ScriptNotify

Se produce cuando el contenido contenido del control WebView pasa una cadena a la aplicación mediante JavaScript.

SeparateProcessLost

Se produce cuando se ejecuta un objeto WebView con executionMode de SeparateProcess y se pierde el proceso independiente.

SizeChanged

Se produce cuando la propiedad ActualHeight o ActualWidth cambia el valor en un FrameworkElement.

(Heredado de FrameworkElement)
Tapped

Se produce cuando se produce una interacción de tap no controlada en el área de prueba de posicionamiento de este elemento.

(Heredado de UIElement)
Unloaded

Se produce cuando este objeto ya no está conectado al árbol de objetos principal.

(Heredado de FrameworkElement)
UnsafeContentWarningDisplaying

Se produce cuando WebView muestra una página de advertencia para el contenido notificado como no seguro por smartScreen Filter.

UnsupportedUriSchemeIdentified

Se produce cuando se intenta navegar a un identificador uniforme de recursos (URI) mediante un esquema que WebView no admite.

UnviewableContentIdentified

Se produce cuando WebView intenta descargar un archivo no admitido.

WebResourceRequested

Se produce cuando se ha realizado una solicitud HTTP.

Se aplica a

Consulte también