WebView Classe

Définition

Fournit un contrôle qui héberge le contenu HTML dans une application.

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 .../>
Héritage
Object Platform::Object IInspectable DependencyObject UIElement FrameworkElement WebView
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

Conseil

Pour plus d’informations, des conseils de conception et des exemples de code, consultez Vue web.

Si vous avez installé l’application Galerie WinUI 2 , cliquez ici pour ouvrir l’application et voir webView en action.

L’exemple de code suivant montre comment naviguer dans un WebView jusqu’à un URI contenu dans une zone de texte nommée Address.

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

L’exemple de code suivant montre comment charger du code HTML local dans un contrôle WebView.

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

Remarques

Utilisez le contrôle WebView pour héberger du contenu web dans votre application. Les applications pour Surface Hub ou Xbox doivent utiliser ce WebView.

Important

Pour les applications de bureau, nous vous recommandons d’utiliser le contrôle WebView2 , qui est disponible dans le cadre de la bibliothèque d’interface utilisateur Windows 2 pour UWP (WinUI 2). WebView2 utilise Microsoft Edge (Chromium) comme moteur de rendu pour afficher le contenu web dans les applications. Pour plus d’informations, consultez Présentation de Microsoft Edge WebView2, Prise en main de WebView2 dans les applications WinUI 2 (UWP) et WebView2 dans les informations de référence sur l’API WinUI.

Important

Îles XAML : ce contrôle n’est pas pris en charge dans les applications XAML Islands. Pour obtenir des alternatives, consultez Iles XAML - Contrôles d’affichage web.

WebView n’est pas une sous-classe Control et n’a donc pas de modèle de contrôle. Vous pouvez définir différentes propriétés pour contrôler certains aspects visuels du WebView. La zone d’affichage est limitée par les propriétés Width et Height . Pour traduire, mettre à l’échelle, biaiser et faire pivoter un WebView, utilisez la propriété RenderTransform . Pour contrôler l’opacité du WebView, définissez la propriété Opacity . Pour spécifier une couleur à utiliser en arrière-plan de la page web quand le contenu HTML ne spécifie pas de couleur, définissez la propriété DefaultBackgroundColor.

Vous pouvez obtenir le titre du document HTML actuellement affiché dans webView à l’aide de la propriété DocumentTitle .

Bien que WebView ne soit pas une sous-classe Control , il reçoit le focus d’entrée du clavier et participe à la séquence d’onglets. Il fournit une méthode Focus, et des événements GotFocus et LostFocus, mais il n’a pas de propriétés en rapport avec la tabulation. Sa position dans la séquence de tabulation est identique à sa position dans l’ordre du document XAML. La séquence d’onglets inclut tous les éléments du contenu WebView qui peuvent recevoir le focus d’entrée.

Comme indiqué dans la table Événements, WebView ne prend pas en charge la plupart des événements d’entrée utilisateur hérités d’UIElement, tels que KeyDown, KeyUp et PointerPressed. Une solution de contournement courante consiste à utiliser InvokeScriptAsync avec la fonction eval JavaScript pour utiliser les gestionnaires d’événements HTML et à utiliser window.external.notify à partir du gestionnaire d’événements HTML pour notifier l’application à l’aide de WebView.ScriptNotify.

Dans les applications compilées pour Windows 10, WebView utilise le moteur de rendu Microsoft Edge pour afficher le contenu HTML. Dans les applications compilées pour Windows 8 ou Windows 8.1, WebView utilise Internet Explorer 11 en mode document. Il ne prend pas en charge les contrôles ou plug-ins Microsoft ActiveX tels que Microsoft Silverlight ou les fichiers PDF (Portable Document Format).

WebView fournit plusieurs API pour la navigation de base : GoBack, GoForward, Stop, Refresh, CanGoBack et CanGoForward. Ces API vous permettent d’ajouter des fonctionnalités de navigation web standard à votre application.

Pour définir le contenu initial du WebView, définissez la propriété Source en XAML. L’analyseur XAML convertit automatiquement la chaîne en 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 propriété Source peut être définie dans le code, mais au lieu de le faire, vous utilisez généralement l’une des méthodes Navigate pour charger du contenu dans le code.

Pour charger du contenu web, utilisez la méthode Navigate avec un URI qui utilise le schéma http ou https .

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

Pour accéder à un URI (Uniform Resource Identifier) avec une requête POST et des en-têtes HTTP, utilisez la méthode NavigateWithHttpRequestMessage . Cette méthode prend en charge seulement HttpMethod.Post et HttpMethod.Get pour la valeur de la propriété HttpRequestMessage.Method.

Pour charger du contenu non compressé et non chiffré à partir des magasins de données LocalFolder ou TemporaryFolder de votre application, utilisez la méthode Navigate avec un Uri qui fait appel au schéma ms-appdata. La prise en charge de WebView pour ce schéma vous oblige à placer votre contenu dans un sous-dossier sous le dossier local ou temporaire. Cela permet de naviguer vers l’URI (Uniform Resource Identifier), tel que lefichier ms-appdata:///local/ folder/.html etle fichier ms-appdata:///temp/ folder/.html. (Pour charger des fichiers compressés ou chiffrés, consultez NavigateToLocalStreamUri.)

Chacun de ces sous-dossiers de premier niveau est isolé du contenu des autres sous-dossiers de premier niveau. Par exemple, vous pouvez accéder à ms-appdata:///temp/dossier1/fichier.html, mais ce fichier ne peut pas contenir de lien vers ms-appdata:///temp/dossier2/fichier.html. Toutefois, vous pouvez toujours lier du contenu HTML dans le package d’application à l’aide du schéma ms-appx-web et au contenu web à l’aide des schémas URI (Uniform Resource Identifier) http et https .

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

Pour charger du contenu à partir de votre package d’application, utilisez la méthode Navigate avec un Uri qui fait appel au schéma ms-appx-web.

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

Vous pouvez charger du contenu local via un résolveur personnalisé en utilisant la méthode NavigateToLocalStreamUri. Ceci permet de mettre en œuvre des scénarios avancés comme le téléchargement et la mise en cache de contenu web en vue d’une utilisation hors ligne, ou l’extraction du contenu d’un fichier compressé.

Réponse aux événements de navigation

WebView fournit plusieurs événements que vous pouvez utiliser pour répondre aux états de navigation et de chargement de contenu. Les événements se produisent dans l’ordre suivant pour le contenu WebView racine :

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 produit lorsque WebView a commencé à charger du nouveau contenu.
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 produit lorsque le WebView a terminé l’analyse du contenu HTML actuel.
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();
    }
}

Des événements similaires se produisent dans le même ordre pour chaque iframe dans le contenu WebView :

Réponse aux problèmes potentiels

Vous pouvez répondre à des problèmes potentiels liés au contenu, tels que des scripts de longue durée, du contenu que WebView ne peut pas charger et des avertissements de contenu non sécurisé.

Votre application peut sembler ne pas répondre pendant l’exécution de scripts. L’événement LongRunningScriptDetected se produit régulièrement pendant que le WebView exécute JavaScript et offre la possibilité d’interrompre le script. Pour déterminer depuis combien de temps le script est exécuté, vérifiez la propriété ExecutionTime de la classe WebViewLongRunningScriptDetectedEventArgs. Pour interrompre le script, définissez la propriété StopPageScriptExecution des arguments d’événement sur true. Le script arrêté ne s’exécute pas à nouveau, sauf s’il est rechargé lors d’une navigation WebView ultérieure.

Le contrôle WebView ne peut pas héberger des types de fichiers arbitraires. Lorsqu’une tentative de chargement du contenu que WebView ne peut pas héberger, l’événement UnviewableContentIdentified se produit. Vous pouvez gérer cet événement et avertir l’utilisateur, ou utiliser la classe Launcher pour rediriger le fichier vers un navigateur externe ou une autre application.

De même, l’événement UnsupportedUriSchemeIdentified se produit lorsqu’un schéma URI (Uniform Resource Identifier) non pris en charge est appelé dans le contenu web, par exemple fbconnect:// ou mailto://. Vous pouvez gérer cet événement pour fournir un comportement personnalisé au lieu d’autoriser le lanceur système par défaut à lancer l’URI (Uniform Resource Identifier).

L’événement UnsafeContentWarningDisplaying se produit lorsque webView affiche une page d’avertissement pour le contenu signalé comme non sécurisé par le filtre SmartScreen. Si l’utilisateur choisit de poursuivre la navigation, l’avertissement ne s’affichera plus et l’événement ne se déclenchera pas la prochaine fois qu’il accèdera à la page.

Gestion des cas spéciaux pour le contenu WebView

Vous pouvez utiliser la propriété ContainsFullScreenElement et l’événement ContainsFullScreenElementChanged pour détecter et activer les expériences en plein écran dans le contenu web, comme la lecture vidéo en plein écran, et y répondre. Par exemple, vous pouvez utiliser l’événement ContainsFullScreenElementChanged pour redimensionner le WebView afin d’occuper l’intégralité de l’affichage de votre application ou, comme l’illustre l’exemple suivant, mettre une application fenêtré en mode plein écran quand une expérience web en plein écran est souhaitée.

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

Vous pouvez utiliser l’événement NewWindowRequested pour gérer les cas où le contenu web hébergé demande l’affichage d’une nouvelle fenêtre, comme une fenêtre contextuelle. Vous pouvez utiliser un autre contrôle WebView pour afficher le contenu de la fenêtre demandée.

Utilisez l’événement PermissionRequested pour activer les fonctionnalités web qui nécessitent des fonctionnalités spéciales. Ces dernières incluent actuellement la géolocalisation, le stockage IndexedDB, et la prise en charge du son et de la vidéo de l’utilisateur (par exemple d’un microphone ou d’une webcam). Si votre application accède à l’emplacement ou au média de l’utilisateur, vous devez déclarer cette fonctionnalité dans le manifeste de l’application. Par exemple, une application qui utilise la géolocalisation doit inclure au minimum les déclarations de fonctionnalités suivantes dans le fichier Package.appxmanifest :

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

En plus de la gestion par l’application de l’événement PermissionRequested, l’utilisateur devra approuver des boîtes de dialogue système standard pour les applications faisant appel à des fonctionnalités de géolocalisation ou multimédias afin d’activer ces dernières.

Voici un exemple de la façon dont une application activerait la géolocalisation dans une carte 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 votre application nécessite une entrée utilisateur ou d’autres opérations asynchrones pour répondre à une demande d’autorisation, utilisez la méthode Defer de WebViewPermissionRequest afin de créer un élément WebViewDeferredPermissionRequest qui pourra être traité à un moment ultérieur. Consultez WebViewPermissionRequest.Defer.

Si les utilisateurs doivent se déconnecter en toute sécurité d’un site web hébergé dans WebView, ou dans d’autres cas où la sécurité est importante, appelez la méthode statique ClearTemporaryWebDataAsync pour effacer tout le contenu mis en cache localement d’une session WebView. Ceci permet d’empêcher les utilisateurs malveillants d’accéder à des données sensibles.

Interaction avec le contenu WebView

Vous pouvez interagir avec le contenu de WebView à l’aide de la méthode InvokeScriptAsync pour appeler ou injecter un script dans le contenu WebView, et l’événement ScriptNotify pour récupérer des informations à partir du contenu WebView.

Pour appeler JavaScript dans le contenu WebView, utilisez la méthode InvokeScriptAsync . Le script appelé peut retourner seulement des valeurs de chaîne.

Par exemple, si le contenu d’un WebView nommé webViewA contient une fonction nommée setDate qui prend 3 paramètres, vous pouvez l’appeler comme suit.

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

Vous pouvez utiliser InvokeScriptAsync avec la fonction JavaScript eval pour injecter du contenu dans la page web.

Ici, le texte d’une zone de texte XAML (nameTextBox.Text) est écrit dans un div dans une page HTML hébergée dans 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 });
}

Les scripts du contenu WebView peuvent utiliser window.external.notify avec un paramètre de chaîne pour renvoyer des informations à votre application. Pour recevoir ces messages, vous devez gérer l’événement ScriptNotify.

Pour permettre à une page web externe de déclencher l’événement ScriptNotify lors de l’appel de window.external.notify, vous devez inclure l’URI (Uniform Resource Identifier) de la page dans la section ApplicationContentUriRules du manifeste de l’application. (Vous pouvez effectuer cette opération dans Microsoft Visual Studio sous l’onglet URI de contenu du concepteur Package.appxmanifest.) Les URI de cette liste doivent utiliser HTTPS et peuvent contenir des caractères génériques de sous-domaine (par exemple, https://.microsoft.com), mais ils ne peuvent pas contenir de caractères génériques de domaine (par exemple, https://.com et https://.). La configuration requise pour le manifeste ne s’applique pas au contenu qui provient du package d’application, qui utilise un URI ms-local-stream:// ou qui est chargé à l’aide de NavigateToString.

Accès au Windows Runtime dans WebView

À partir de Windows 10, vous pouvez utiliser la méthode AddWebAllowedObject pour injecter une instance d’une classe native à partir d’un composant Windows Runtime dans le contexte JavaScript du WebView. Cela permet un accès complet aux méthodes, propriétés et événements natifs de cet objet dans le contenu JavaScript de ce WebView. La classe doit être décorée avec l’attribut AllowForWeb.

Par exemple, ce code injecte une instance d’importation à MyClass partir d’un composant Windows Runtime dans WebView.

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

Pour plus d’informations, consultez WebView.AddWebAllowedObject.

En outre, le contenu JavaScript approuvé dans WebView peut être autorisé à accéder directement à Windows RuntimeAPI. Cela fournit des fonctionnalités natives puissantes pour les applications web hébergées dans WebView. Pour activer cette fonctionnalité, l’URI (Uniform Resource Identifier) pour le contenu approuvé doit être ajouté à la liste verte dans applicationContentUriRules de l’application dans Package.appxmanifest, avec WindowsRuntimeAccess spécifiquement défini sur « all ».

Cet exemple montre une section du manifeste de l’application. Ici, un URI (Uniform Resource Identifier) local reçoit l’accès à l’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>

Options pour l’hébergement de contenu web

À partir de Windows 10, vous pouvez utiliser la propriété WebView.Settings (de type WebViewSettings) pour contrôler si JavaScript et IndexedDB sont activés. Par exemple, si vous utilisez WebView pour afficher du contenu strictement statique, vous pouvez désactiver JavaScript pour des performances optimales.

Capture de contenu WebView

Pour activer le partage de contenu WebView avec d’autres applications, utilisez la méthode CaptureSelectedContentToDataPackageAsync , qui retourne le contenu sélectionné sous forme de DataPackage. Cette méthode étant asynchrone, vous devez utiliser un report pour empêcher le retour du gestionnaire d’événements DataRequested avant la fin de l’appel asynchrone.

Pour obtenir une image d’aperçu du contenu actuel de WebView, utilisez la méthode CapturePreviewToStreamAsync . Cette méthode crée une image du contenu actuel et l’écrit dans le flux spécifié.

Modes d’exécution

Par défaut, le contenu WebView est hébergé sur le thread d’interface utilisateur sur les appareils de la famille d’appareils de bureau et hors du thread d’interface utilisateur sur tous les autres appareils. Vous pouvez utiliser la propriété statique WebView.DefaultExecutionMode pour obtenir le comportement de threading par défaut du client actuel. Si nécessaire, vous pouvez utiliser le constructeur WebView(WebViewExecutionMode) pour remplacer ce comportement.

Les valeurs WebViewExecutionMode prises en charge sont les suivantes :

  • SameThread : le contenu WebView est hébergé sur le thread d’interface utilisateur.
  • SeparateThread : le contenu WebView est hébergé sur un thread distinct de l’interface utilisateur.
  • SeparateProcess : (Windows 10, version 1803 ou ultérieure) Le contenu WebView est hébergé sur un processus distinct en dehors du processus d’application. Toutes les instances WebView d’une application partagent le même processus distinct. Il n’existe pas de processus distinct par instance WebView.

Lors de l’exécution dans un processus distinct, WebView exibit deux différences de comportement :

  • Le processus WebView peut se terminer. Vous pouvez en être averti en écoutant l’événement SeparateProcessLost .
  • Le processus WebView peut rejeter de manière asynchrone le focus sur le clavier. Dans ce cas, la méthode WebView.Focus retourne true, puis immédiatement (mais de manière asynchrone), le focus s’éloigne du WebView. (D’autres façons de déplacer le focus se comportent de la même façon, telles que FocusManager.TryMoveFocus.) Vous pouvez effectuer un suivi plus explicite à l’aide des API FocusManager.TryFocusAsync ou FocusManager.TryMoveFocusAsync .

Cet exemple montre comment créer un contrôle WebView qui s’exécute dans un processus distinct de l’application hôte et qui sera recréé si le processus distinct est perdu.

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

Notes

Il peut y avoir des problèmes de performances lors de l’hébergement du contenu sur le thread d’interface utilisateur sur les appareils mobiles. Veillez donc à effectuer des tests sur tous les appareils cibles lorsque vous modifiez DefaultExecutionMode.

Un WebView qui héberge le contenu hors du thread d’interface utilisateur n’est pas compatible avec les contrôles parent qui nécessitent des mouvements pour se propager du contrôle WebView vers le parent, tels que FlipView, ScrollViewer et d’autres contrôles associés. Ces contrôles ne seront pas en mesure de recevoir les mouvements initiés dans le WebView hors thread. En outre, l’impression de contenu web hors thread n’est pas directement prise en charge : vous devez imprimer un élément avec le remplissage WebViewBrush à la place.

Comportement du focus pour WebView dans un processus distinct

Qu’il s’exécute dans le processus d’application ou dans un processus distinct, vous pouvez définir le focus sur un WebView en appelant la méthode WebView.Focus. Cela équivaut aux méthodes Control.Focus et Hyperlink.Focus (notez que WebView ne dérive pas de Control).

De même, plusieurs méthodes de la classe FocusManager peuvent affecter un WebView (ou Control ou Hyperlink) : TryMoveFocus, FindNextFocusableElement, FindLastFocusableElement et GetFocusedElement. Par exemple, TryMoveFocus déplace le focus vers un WebView, et GetFocusedElement retourne un WebView qui a le focus.

Enfin, le déplacement du focus vers ou à partir d’un WebView génère des événements de focus, à la fois sur le WebView lui-même et sur l’élément qui perd ou reçoit le focus. Les événements sont LosingFocus, LostFocus, GettingFocus et GotFocus. Par exemple, lorsque le focus passe d’un Contrôle à un WebView, le Contrôle déclenche les événements LosingFocus et LostFocus, et le WebView déclenche les événements GettingFocus et GotFocus.

Lorsqu’un WebView s’exécute dans un processus distinct, le comportement de ces API change légèrement. En supposant que webView est focusable, la méthode WebView.Focus retourne true (réussite), mais le focus n’a pas encore été déplacé. Il en va de même si, au lieu de la méthode WebView.Focus, FocusManager.TryMoveFocus est appelé et identifie un WebView comme élément focusable suivant.

Les différences de comportement sont les suivantes :

  • FocusManager.GetFocusedElement ne retourne le WebView qu’à la fin de l’opération asynchrone.
  • Le contrôle qui perd le focus recevra son événement LosingFocus de manière synchrone ; Toutefois, il ne recevra pas LostFocus tant que l’opération asynchrone n’est pas terminée.
  • De même, l’événement GettingFocus se produit sur le WebView de manière synchrone ; toutefois, l’événement GotFocus n’est pas déclenché tant que/tant que l’opération asynchrone n’est pas terminée.

Rien de tout cela ne change si vous appelez FocusManager.TryFocusAsync à la place. Toutefois, la méthode asynchrone vous permet de déterminer si le changement de focus a réussi.

L’appel de FocusManager.TryMoveFocusAsync sur un élément autre qu’un WebView dans un processus distinct se termine de manière synchrone.

Cet exemple montre comment déplacer le focus vers l’élément logique suivant, mais en cas d’échec, restaurez le focus à son emplacement initial.

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

Utilisation de l’alerte

Si une page web hébergée dans un WebView utilise la fonction d’alerte JavaScript, elle ne s’affiche pas. C’est par conception pour toutes les versions de WebView.

Vous pouvez intercepter les informations affichées par une alerte et faire ce que vous voulez avec elle dans l’application hôte. Cela dépend de la façon dont la page est écrite et si vous en avez le contrôle. Un exemple est disponible qui illustre une technique possible pour ce faire. L’exemple est écrit pour Windows 8.1 et Windows Phone 8.1, mais il fonctionne également pour les applications utilisant le plateforme Windows universelle (UWP). Toutefois, cela peut ne pas fonctionner pour tous les scénarios.

Comment intercepter une alerte JavaScript dans WebView dans les applications Windows universelles

Remarques pour les versions précédentes

Windows 8.1

Les API WebView suivantes sont déconseillées dans Windows 8.1 :

Sur Windows uniquement, vous pouvez gérer l’événement UnsafeContentWarningDisplaying . Cet événement se produit lorsque webView affiche une page d’avertissement pour le contenu signalé comme non sécurisé par le filtre SmartScreen. Si l’utilisateur choisit de poursuivre la navigation, l’avertissement ne s’affichera plus et l’événement ne se déclenchera pas la prochaine fois qu’il accèdera à la page. Cet événement n’est pas implémenté pour Windows Phone.

Lorsque vous appelez JavaScript à l’intérieur de WebView en appelant la méthode InvokeScriptAsync , les fonctions qui nécessitent une fenêtre secondaire, comme Alert, ne sont pas prises en charge.

Windows Phone 8

L’événement UnsafeContentWarningDisplaying n’est pas implémenté pour Windows Phone avant Windows 10.

Windows 8

Ces remarques s’appliquent uniquement aux applications compilées pour Windows 8, même en cas d’exécution sur Windows 8.1 ou version ultérieure.

Dans Windows 8, WebView a la caractéristique que d’autres régions d’interface utilisateur, telles que les contrôles, ne peuvent pas être affichées par-dessus le WebView. Ce « problème d’espace aérien » est dû à la façon dont les régions de fenêtre sont gérées en interne, en particulier la façon dont les événements d’entrée sont traités et la façon dont l’écran dessine. Si vous souhaitez afficher du contenu HTML et placer d’autres éléments d’interface utilisateur par-dessus ce contenu HTML, vous devez utiliser WebViewBrush comme zone de rendu. WebView fournit toujours les informations de source HTML, et vous référencez ce WebView via la propriété SourceName . WebViewBrush n’a pas cette limitation de superposition.

Si vous souhaitez afficher un WebView interactif dont le contenu ne se chevauche qu’occasionnellement (par exemple, une liste déroulante ou une barre d’application), vous pouvez masquer temporairement le contrôle WebView si nécessaire, en le remplaçant par un élément à l’aide d’un remplissage WebViewBrush . Ensuite, lorsque le contenu qui se chevauche n’est plus présent, vous pouvez à nouveau afficher le WebView d’origine.

Notes

Le « problème d’espace aérien » a été résolu à partir de Windows 8.1 et ne s’applique pas aux applications ciblant les Windows 8.1 ou les Windows 10.

WebView utilise toujours Internet Explorer 10 en mode document.

Historique des versions

Version de Windows Version du SDK Valeur ajoutée
1607 14393 XYFocusDown
1607 14393 XYFocusLeft
1607 14393 XYFocusRight
1607 14393 XYFocusUp
1803 17134 SeparateProcessLost
1809 17763 WebResourceRequested

Constructeurs

WebView()

Initialise une nouvelle instance de la classe WebView.

WebView(WebViewExecutionMode)

Initialise une nouvelle instance de la classe WebView avec le mode d’exécution spécifié.

Propriétés

AccessKey

Obtient ou définit la clé d’accès (mnémonique) pour cet élément.

(Hérité de UIElement)
AccessKeyScopeOwner

Obtient ou définit un élément source qui fournit l’étendue de la clé d’accès pour cet élément, même s’il ne se trouve pas dans l’arborescence visuelle de l’élément source.

(Hérité de UIElement)
ActualHeight

Obtient la hauteur rendue d’un FrameworkElement. Consultez la section Notes.

(Hérité de FrameworkElement)
ActualOffset

Obtient la position de cet ÉLÉMENT UIElement, par rapport à son parent, calculée lors de la passe d’organisation du processus de disposition.

(Hérité de UIElement)
ActualSize

Obtient la taille que cet ÉLÉMENT UIElement a calculée pendant la passe d’organisation du processus de disposition.

(Hérité de UIElement)
ActualTheme

Obtient le thème d’interface utilisateur actuellement utilisé par l’élément, qui peut être différent de RequestedTheme.

(Hérité de FrameworkElement)
ActualWidth

Obtient la largeur rendue d’un FrameworkElement. Consultez la section Notes.

(Hérité de FrameworkElement)
AllowDrop

Obtient ou définit une valeur qui détermine si cet élément UIElement peut être une cible de déplacement à des fins d’opérations de glisser-déplacer.

(Hérité de UIElement)
AllowedScriptNotifyUris

Notes

AllowedScriptNotifyUris n’est pas pris en charge dans les applications compilées pour Windows 8.1. Au lieu de cela, mettez à jour la section ApplicationContentUriRules du manifeste de l’application. Pour plus d’informations, consultez la section Remarques.

Obtient ou définit une liste sécurisée d’URI autorisés à déclencher des événements ScriptNotify sur ce WebView.

AllowedScriptNotifyUrisProperty

Notes

AllowedScriptNotifyUrisProperty n’est pas pris en charge dans les applications compilées pour Windows 8.1. Au lieu de cela, mettez à jour la section ApplicationContentUriRules du manifeste de l’application. Pour plus d’informations, consultez la section Remarques.

Identifie la propriété de dépendance AllowedScriptNotifyUris .

AllowFocusOnInteraction

Obtient ou définit une valeur qui indique si l’élément obtient automatiquement le focus lorsque l’utilisateur interagit avec lui.

(Hérité de FrameworkElement)
AllowFocusWhenDisabled

Obtient ou définit si un contrôle désactivé peut recevoir le focus.

(Hérité de FrameworkElement)
AnyScriptNotifyUri

Notes

AnyScriptNotifyUri n’est pas pris en charge dans les applications compilées pour Windows 8.1. Au lieu de cela, mettez à jour la section ApplicationContentUriRules du manifeste de l’application. Pour plus d’informations, consultez la section Remarques.

Obtient une valeur que vous pouvez utiliser pour définir la propriété AllowedScriptNotifyUris pour indiquer que n’importe quelle page peut déclencher des événements ScriptNotify sur ce WebView.

BaseUri

Obtient un URI (Uniform Resource Identifier) qui représente l’URI (Uniform Resource Identifier) de base pour un objet construit en XAML au moment du chargement XAML. Cette propriété est utile pour la résolution d’URI (Uniform Resource Identifier) au moment de l’exécution.

(Hérité de FrameworkElement)
CacheMode

Obtient ou définit une valeur qui indique que le contenu rendu doit être mis en cache sous la forme d’une bitmap composite dans la mesure du possible.

(Hérité de UIElement)
CanBeScrollAnchor

Obtient ou définit une valeur qui indique si l’élément UIElement peut être un candidat pour l’ancrage par défilement.

(Hérité de UIElement)
CanDrag

Obtient ou définit une valeur qui indique si l’élément peut être déplacé en tant que données dans une opération de glisser-déplacer.

(Hérité de UIElement)
CanGoBack

Obtient une valeur qui indique s’il existe au moins une page dans l’historique de navigation arrière.

CanGoBackProperty

Identifie la propriété de dépendance CanGoBack .

CanGoForward

Obtient une valeur qui indique s’il existe au moins une page dans l’historique de navigation avant.

CanGoForwardProperty

Identifie la propriété de dépendance CanGoForward .

CenterPoint

Obtient ou définit le point central de l’élément, qui est le point sur lequel la rotation ou la mise à l’échelle se produit. Affecte la position de rendu de l’élément.

(Hérité de UIElement)
Clip

Obtient ou définit le RectangleGeometry utilisé pour définir le contour du contenu d’un UIElement.

(Hérité de UIElement)
CompositeMode

Obtient ou définit une propriété qui déclare d’autres modes de composition et de fusion pour l’élément dans sa disposition et sa fenêtre parentes. Cela s’applique aux éléments impliqués dans une interface utilisateur MIXTE XAML/Microsoft DirectX.

(Hérité de UIElement)
ContainsFullScreenElement

Obtient une valeur qui indique si le WebView contient un élément qui prend en charge le plein écran.

ContainsFullScreenElementProperty

Identifie la propriété de dépendance ContainsFullScreenElement .

ContextFlyout

Obtient ou définit le menu volant associé à cet élément.

(Hérité de UIElement)
DataContext

Obtient ou définit le contexte de données d’un FrameworkElement. Une utilisation courante d’un contexte de données est lorsqu’un FrameworkElement utilise l’extension de balisage {Binding} et participe à la liaison de données.

(Hérité de FrameworkElement)
DataTransferPackage

Notes

DataTransferPackage peut être modifié ou indisponible pour les versions après Windows 8.1. Utilisez plutôt CaptureSelectedContentToDataPackageAsync.

Obtient un DataPackage du Presse-papiers tel qu’il est passé au WebView.

DataTransferPackageProperty

Notes

DataTransferPackageProperty peut être modifié ou indisponible pour les versions après Windows 8.1. Utilisez plutôt CaptureSelectedContentToDataPackageAsync.

Identifie la propriété de dépendance DataTransferPackage .

DefaultBackgroundColor

Obtient ou définit la couleur à utiliser comme arrière-plan WebView lorsque le contenu HTML ne spécifie pas de couleur.

DefaultBackgroundColorProperty

Identifie la propriété de dépendance DefaultBackgroundColor .

DefaultExecutionMode

Obtient le comportement de thread par défaut des instances WebView dans l’application actuelle.

DeferredPermissionRequests

Obtient une collection de demandes d’autorisation qui attendent d’être accordées ou refusées.

DesiredSize

Obtient la taille calculée par ce UIElement pendant la passe de mesure du processus de disposition.

(Hérité de UIElement)
Dispatcher

Obtient le CoreDispatcher auquel cet objet est associé. CoreDispatcher représente une fonctionnalité qui peut accéder à DependencyObject sur le thread d’interface utilisateur, même si le code est initié par un thread autre que l’interface utilisateur.

(Hérité de DependencyObject)
DocumentTitle

Obtient le titre de la page actuellement affichée dans webView.

DocumentTitleProperty

Identifie la propriété de dépendance DocumentTitle .

ExecutionMode

Obtient une valeur qui indique si le WebView héberge le contenu sur le thread d’interface utilisateur ou un thread non-interface utilisateur.

ExitDisplayModeOnAccessKeyInvoked

Obtient ou définit une valeur qui spécifie si l’affichage de la clé d’accès est ignoré lorsqu’une clé d’accès est appelée.

(Hérité de UIElement)
FlowDirection

Obtient ou définit la direction dans laquelle le texte et d’autres éléments d’interface utilisateur circulent dans tout élément parent qui contrôle leur disposition. Cette propriété peut être définie sur LeftToRight ou RightToLeft. Le fait de définir FlowDirection sur RightToLeft sur n’importe quel élément définit l’alignement à droite, l’ordre de lecture de droite à gauche et la disposition du contrôle à passer de droite à gauche.

(Hérité de FrameworkElement)
FocusVisualMargin

Obtient ou définit la marge externe du visuel focus pour un FrameworkElement.

(Hérité de FrameworkElement)
FocusVisualPrimaryBrush

Obtient ou définit le pinceau utilisé pour dessiner la bordure externe d’un HighVisibility visuel ou Reveal de focus pour un FrameworkElement.

(Hérité de FrameworkElement)
FocusVisualPrimaryThickness

Obtient ou définit l’épaisseur de la bordure externe d’un HighVisibility visuel ou Reveal de focus pour un FrameworkElement.

(Hérité de FrameworkElement)
FocusVisualSecondaryBrush

Obtient ou définit le pinceau utilisé pour dessiner la bordure interne d’un HighVisibility visuel ou Reveal de focus pour un FrameworkElement.

(Hérité de FrameworkElement)
FocusVisualSecondaryThickness

Obtient ou définit l’épaisseur de la bordure interne d’un HighVisibility visuel ou Reveal de focus pour un FrameworkElement.

(Hérité de FrameworkElement)
Height

Obtient ou définit la hauteur suggérée d’un FrameworkElement.

(Hérité de FrameworkElement)
HighContrastAdjustment

Obtient ou définit une valeur qui indique si l’infrastructure ajuste automatiquement les propriétés visuelles de l’élément lorsque les thèmes à contraste élevé sont activés.

(Hérité de UIElement)
HorizontalAlignment

Obtient ou définit les caractéristiques d’alignement horizontales appliquées à un FrameworkElement lorsqu’il est composé dans un parent de disposition, tel qu’un panneau ou un contrôle d’éléments.

(Hérité de FrameworkElement)
IsAccessKeyScope

Obtient ou définit une valeur qui indique si un élément définit sa propre étendue de clé d’accès.

(Hérité de UIElement)
IsDoubleTapEnabled

Obtient ou définit une valeur qui détermine si l’événement DoubleTapped peut provenir de cet élément.

(Hérité de UIElement)
IsHitTestVisible

Obtient ou définit si la zone autonome de cet élément UIElement peut retourner des valeurs vraies pour le test d’accès.

(Hérité de UIElement)
IsHoldingEnabled

Obtient ou définit une valeur qui détermine si l’événement Holding peut provenir de cet élément.

(Hérité de UIElement)
IsLoaded

Obtient une valeur qui indique si l’élément a été ajouté à l’arborescence d’éléments et est prêt pour l’interaction.

(Hérité de FrameworkElement)
IsRightTapEnabled

Obtient ou définit une valeur qui détermine si l’événement RightTapped peut provenir de cet élément.

(Hérité de UIElement)
IsTapEnabled

Obtient ou définit une valeur qui détermine si l’événement Tapped peut provenir de cet élément.

(Hérité de UIElement)
KeyboardAcceleratorPlacementMode

Obtient ou définit une valeur qui indique si l’info-bulle de contrôle affiche la combinaison de touches pour son accélérateur de clavier associé.

(Hérité de UIElement)
KeyboardAcceleratorPlacementTarget

Obtient ou définit une valeur qui indique l’info-bulle de contrôle qui affiche la combinaison de touches d’accélérateur.

(Hérité de UIElement)
KeyboardAccelerators

Obtient la collection de combinaisons de touches qui appellent une action à l’aide du clavier.

Les accélérateurs sont généralement affectés aux boutons ou aux éléments de menu.

Exemple de menu montrant les accélérateurs de clavier pour différents éléments de menu
Exemple de menu montrant les accélérateurs de clavier pour différents éléments de menu

(Hérité de UIElement)
KeyTipHorizontalOffset

Obtient ou définit une valeur qui indique la distance à gauche ou à droite de l’élément clé par rapport à l’élément UIElement.

(Hérité de UIElement)
KeyTipPlacementMode

Obtient ou définit une valeur qui indique où la touche d’accès Est placée par rapport à la limite de l’élément UIElement.

(Hérité de UIElement)
KeyTipTarget

Obtient ou définit une valeur qui indique l’élément ciblé par le conseil de clé d’accès.

(Hérité de UIElement)
KeyTipVerticalOffset

Obtient ou définit une valeur qui indique jusqu’à quel point le key tip est placé par rapport à l’élément d’interface utilisateur.

(Hérité de UIElement)
Language

Obtient ou définit les informations de langage de localisation/globalisation qui s’appliquent à un FrameworkElement, ainsi qu’à tous les éléments enfants du FrameworkElement actuel dans la représentation d’objet et dans l’interface utilisateur.

(Hérité de FrameworkElement)
Lights

Obtient la collection d’objets XamlLight attachés à cet élément.

(Hérité de UIElement)
ManipulationMode

Obtient ou définit la valeur ManipulationModes utilisée pour le comportement et l’interaction uiElement avec les mouvements. La définition de cette valeur permet de gérer les événements de manipulation de cet élément dans le code d’application.

(Hérité de UIElement)
Margin

Obtient ou définit la marge externe d’un FrameworkElement.

(Hérité de FrameworkElement)
MaxHeight

Obtient ou définit la contrainte de hauteur maximale d’un FrameworkElement.

(Hérité de FrameworkElement)
MaxWidth

Obtient ou définit la contrainte de largeur maximale d’un FrameworkElement.

(Hérité de FrameworkElement)
MinHeight

Obtient ou définit la contrainte de hauteur minimale d’un FrameworkElement.

(Hérité de FrameworkElement)
MinWidth

Obtient ou définit la contrainte de largeur minimale d’un FrameworkElement.

(Hérité de FrameworkElement)
Name

Obtient ou définit le nom d’identification de l’objet. Lorsqu’un processeur XAML crée l’arborescence d’objets à partir du balisage XAML, le code d’exécution peut faire référence à l’objet déclaré XAML par ce nom.

(Hérité de FrameworkElement)
Opacity

Obtient ou définit le degré d’opacité de l’objet.

(Hérité de UIElement)
OpacityTransition

Obtient ou définit le ScalarTransition qui anime les modifications apportées à la propriété Opacity.

(Hérité de UIElement)
Parent

Obtient l’objet parent de ce FrameworkElement dans l’arborescence d’objets.

(Hérité de FrameworkElement)
PointerCaptures

Obtient l’ensemble de tous les pointeurs capturés, représentés en tant que valeurs de pointeur .

(Hérité de UIElement)
Projection

Obtient ou définit la projection de perspective (effet 3D) à appliquer lors du rendu de cet élément.

(Hérité de UIElement)
RenderSize

Obtient la taille de rendu finale d’un UIElement. L’utilisation n’est pas recommandée, consultez Remarques.

(Hérité de UIElement)
RenderTransform

Obtient ou définit les informations de transformation qui affectent la position de rendu d’un UIElement.

(Hérité de UIElement)
RenderTransformOrigin

Obtient ou définit le point d’origine de toute transformation de rendu possible déclarée par RenderTransform, par rapport aux limites de l’élément UIElement.

(Hérité de UIElement)
RequestedTheme

Obtient ou définit le thème d’interface utilisateur utilisé par l’élément UIElement (et ses éléments enfants) pour la détermination des ressources. Le thème d’interface utilisateur que vous spécifiez avec RequestedTheme peut remplacer le thème RequestedTheme au niveau de l’application.

(Hérité de FrameworkElement)
Resources

Obtient le dictionnaire de ressources défini localement. En XAML, vous pouvez établir des éléments de ressource en tant qu’éléments objet enfants d’un frameworkElement.Resources élément de propriété, via la syntaxe de collection implicite XAML.

(Hérité de FrameworkElement)
Rotation

Obtient ou définit l’angle de rotation dans le sens des aiguilles d’une montre, en degrés. Effectue une rotation par rapport à RotationAxis et au CenterPoint. Affecte la position de rendu de l’élément.

(Hérité de UIElement)
RotationAxis

Obtient ou définit l’axe pour faire pivoter l’élément.

(Hérité de UIElement)
RotationTransition

Obtient ou définit le ScalarTransition qui anime les modifications apportées à la propriété Rotation.

(Hérité de UIElement)
Scale

Obtient ou définit l’échelle de l’élément. Met à l’échelle par rapport au CenterPoint de l’élément. Affecte la position de rendu de l’élément.

(Hérité de UIElement)
ScaleTransition

Obtient ou définit le Vector3Transition qui anime les modifications apportées à la propriété Scale.

(Hérité de UIElement)
Settings

Obtient un objet WebViewSettings qui contient des propriétés permettant d’activer ou de désactiver les fonctionnalités WebView .

Shadow

Obtient ou définit l’effet d’ombre casté par l’élément .

(Hérité de UIElement)
Source

Obtient ou définit la source URI (Uniform Resource Identifier) du contenu HTML à afficher dans le contrôle WebView .

SourceProperty

Identifie la propriété de dépendance Source .

Style

Obtient ou définit un style instance appliqué à cet objet pendant la disposition et le rendu.

(Hérité de FrameworkElement)
TabFocusNavigation

Obtient ou définit une valeur qui modifie le fonctionnement de la tabulation et de TabIndex pour ce contrôle.

(Hérité de UIElement)
Tag

Obtient ou définit une valeur d’objet arbitraire qui peut être utilisée pour stocker des informations personnalisées sur cet objet.

(Hérité de FrameworkElement)
Transform3D

Obtient ou définit l’effet de transformation 3D à appliquer lors du rendu de cet élément.

(Hérité de UIElement)
TransformMatrix

Obtient ou définit la matrice de transformation à appliquer à l’élément.

(Hérité de UIElement)
Transitions

Obtient ou définit la collection d’éléments de style Transition qui s’appliquent à un UIElement.

(Hérité de UIElement)
Translation

Obtient ou définit la position de rendu x, y et z de l’élément.

(Hérité de UIElement)
TranslationTransition

Obtient ou définit la propriété Vector3Transition qui anime les modifications apportées à la propriété Translation.

(Hérité de UIElement)
Triggers

Obtient la collection de déclencheurs pour les animations définies pour un FrameworkElement. Ce n’est pas couramment utilisé. Consultez la section Notes.

(Hérité de FrameworkElement)
UIContext

Obtient l’identificateur de contexte de l’élément.

(Hérité de UIElement)
UseLayoutRounding

Obtient ou définit une valeur qui détermine si le rendu de l’objet et de sa sous-arborescence visuelle doit utiliser un comportement d’arrondi qui aligne le rendu sur des pixels entiers.

(Hérité de UIElement)
VerticalAlignment

Obtient ou définit les caractéristiques d’alignement vertical qui sont appliquées à un FrameworkElement lorsqu’il est composé dans un objet parent tel qu’un panneau ou un contrôle d’éléments.

(Hérité de FrameworkElement)
Visibility

Obtient ou définit la visibilité d’un UIElement. Un élément UIElement qui n’est pas visible n’est pas rendu et ne communique pas sa taille souhaitée à la disposition.

(Hérité de UIElement)
Width

Obtient ou définit la largeur d’un FrameworkElement.

(Hérité de FrameworkElement)
XamlRoot

Obtient ou définit le XamlRoot dans lequel cet élément est en cours d’affichage.

(Hérité de UIElement)
XYFocusDown

Obtient ou définit l’objet qui obtient le focus lorsqu’un utilisateur appuie sur le pavé directionnel (D-pad) vers le bas.

XYFocusDownNavigationStrategy

Obtient ou définit une valeur qui spécifie la stratégie utilisée pour déterminer l’élément cible d’une navigation descendante.

(Hérité de UIElement)
XYFocusDownProperty

Identifie la propriété de dépendance XYFocusDown .

XYFocusKeyboardNavigation

Obtient ou définit une valeur qui active ou désactive la navigation à l’aide des flèches directionnelles du clavier.

(Hérité de UIElement)
XYFocusLeft

Obtient ou définit l’objet qui obtient le focus lorsqu’un utilisateur appuie sur le pavé directionnel (D-pad) à gauche.

XYFocusLeftNavigationStrategy

Obtient ou définit une valeur qui spécifie la stratégie utilisée pour déterminer l’élément cible d’une navigation à gauche.

(Hérité de UIElement)
XYFocusLeftProperty

Identifie la propriété de dépendance XYFocusLeft .

XYFocusRight

Obtient ou définit l’objet qui obtient le focus lorsqu’un utilisateur appuie sur le pavé directionnel (D-pad) vers la droite.

XYFocusRightNavigationStrategy

Obtient ou définit une valeur qui spécifie la stratégie utilisée pour déterminer l’élément cible d’une navigation droite.

(Hérité de UIElement)
XYFocusRightProperty

Identifie la propriété de dépendance XYFocusRight .

XYFocusUp

Obtient ou définit l’objet qui obtient le focus lorsqu’un utilisateur appuie sur le pavé directionnel (D-pad) vers le haut.

XYFocusUpNavigationStrategy

Obtient ou définit une valeur qui spécifie la stratégie utilisée pour déterminer l’élément cible d’une navigation vers le haut.

(Hérité de UIElement)
XYFocusUpProperty

Identifie la propriété de dépendance XYFocusUp .

Méthodes

AddHandler(RoutedEvent, Object, Boolean)

Ajoute un gestionnaire d’événements routé pour un événement routé spécifié, en ajoutant le gestionnaire à la collection de gestionnaires sur l’élément actuel. Spécifiez handledEventsToo sur true pour que le gestionnaire fourni soit appelé même si l’événement est géré ailleurs.

(Hérité de UIElement)
AddWebAllowedObject(String, Object)

Ajoute un objet Windows Runtime natif en tant que paramètre global au document de niveau supérieur à l’intérieur d’un WebView.

Arrange(Rect)

Positionne les objets enfants et détermine la taille d’un élément UIElement. Les objets parents qui implémentent une disposition personnalisée pour leurs éléments enfants doivent appeler cette méthode à partir de leurs implémentations de remplacement de disposition pour former une mise à jour de disposition récursive.

(Hérité de UIElement)
ArrangeOverride(Size)

Fournit le comportement de la passe « Arranger » de la disposition. Les classes peuvent remplacer cette méthode pour définir leur propre comportement de passe « Arrange ».

(Hérité de FrameworkElement)
BuildLocalStreamUri(String, String)

Crée un URI que vous pouvez passer à NavigateToLocalStreamUri.

CancelDirectManipulations()

Annule le traitement de manipulation directe en cours (panoramique/zoom défini par le système) sur n’importe quel parent ScrollViewer qui contient l’élément UIElement actuel.

(Hérité de UIElement)
CapturePointer(Pointer)

Définit la capture de pointeur sur un élément UIElement. Une fois capturé, seul l’élément qui a la capture déclenche les événements liés au pointeur.

(Hérité de UIElement)
CapturePreviewToStreamAsync(IRandomAccessStream)

Crée une image du contenu WebView actuel et l’écrit dans le flux spécifié.

CaptureSelectedContentToDataPackageAsync()

Obtient de manière asynchrone un DataPackage qui contient le contenu sélectionné dans le WebView.

ClearTemporaryWebDataAsync()

Efface le cache et les données IndexedDB de WebView.

ClearValue(DependencyProperty)

Efface la valeur locale d’une propriété de dépendance.

(Hérité de DependencyObject)
DeferredPermissionRequestById(UInt32)

Retourne la demande d’autorisation différée avec l’ID spécifié.

FindName(String)

Récupère un objet qui a le nom d’identificateur spécifié.

(Hérité de FrameworkElement)
FindSubElementsForTouchTargeting(Point, Rect)

Permet à une sous-classe UIElement d’exposer des éléments enfants qui aident à résoudre le ciblage tactile.

(Hérité de UIElement)
Focus(FocusState)

Définit le focus d’entrée sur webView.

GetAnimationBaseValue(DependencyProperty)

Retourne toute valeur de base établie pour une propriété de dépendance, qui s’appliquerait dans les cas où une animation n’est pas active.

(Hérité de DependencyObject)
GetBindingExpression(DependencyProperty)

Renvoie la propriété BindingExpression qui représente la liaison sur la propriété spécifiée.

(Hérité de FrameworkElement)
GetChildrenInTabFocusOrder()

Permet à une sous-classe UIElement d’exposer des éléments enfants qui participent au focus Tab.

(Hérité de UIElement)
GetValue(DependencyProperty)

Retourne la valeur effective actuelle d’une propriété de dépendance à partir d’un DependencyObject.

(Hérité de DependencyObject)
GoBack()

Navigue dans webView jusqu’à la page précédente de l’historique de navigation.

GoForward()

Navigue dans webView jusqu’à la page suivante de l’historique de navigation.

GoToElementStateCore(String, Boolean)

En cas d’implémentation dans une classe dérivée, active la construction par état d’une arborescence visuelle pour un modèle de contrôle dans le code, plutôt qu’en chargeant XAML pour tous les états au démarrage du contrôle.

(Hérité de FrameworkElement)
InvalidateArrange()

Invalide l’état d’organisation (disposition) d’un UIElement. Après l’invalidation, la disposition de l’élément UIElement est mise à jour, ce qui se produit de manière asynchrone.

(Hérité de UIElement)
InvalidateMeasure()

Invalide l’état de mesure (disposition) d’un UIElement.

(Hérité de UIElement)
InvalidateViewport()

Invalide l’état de la fenêtre d’affichage d’un élément UIElement utilisé pour calculer la fenêtre d’affichage effective.

(Hérité de FrameworkElement)
InvokeScript(String, String[])

Notes

InvokeScript peut être modifié ou indisponible pour les versions après Windows 8.1. Utilisez plutôt InvokeScriptAsync.

Exécute la fonction de script spécifiée à partir du code HTML actuellement chargé, avec des arguments spécifiques.

InvokeScriptAsync(String, IIterable<String>)

Exécute la fonction de script spécifiée à partir du code HTML actuellement chargé, avec des arguments spécifiques, en tant qu’action asynchrone.

Measure(Size)

Mises à jour le DesiredSize d’un UIElement. En règle générale, les objets qui implémentent une disposition personnalisée pour leurs enfants de disposition appellent cette méthode à partir de leurs propres implémentations MeasureOverride pour former une mise à jour de disposition récursive.

(Hérité de UIElement)
MeasureOverride(Size)

Fournit le comportement de la passe « Mesure » du cycle de disposition. Les classes peuvent remplacer cette méthode pour définir leur propre comportement de passe « Mesure ».

(Hérité de FrameworkElement)
Navigate(Uri)

Charge le contenu HTML à l’URI (Uniform Resource Identifier) spécifié.

NavigateToLocalStreamUri(Uri, IUriToStreamResolver)

Charge le contenu web local à l’URI spécifié à l’aide d’un IUriToStreamResolver.

NavigateToString(String)

Charge le contenu HTML spécifié en tant que nouveau document.

NavigateWithHttpRequestMessage(HttpRequestMessage)

Navigue dans webView jusqu’à un URI avec une requête POST et des en-têtes HTTP.

OnApplyTemplate()

Appelé chaque fois que du code d’application ou des processus internes (tels qu’une passe de disposition de reconstruction) appelleNt ApplyTemplate. En termes simples, cela signifie que la méthode est appelée juste avant qu’un élément d’interface utilisateur ne s’affiche dans votre application. Remplacez cette méthode pour influencer la logique post-modèle par défaut d’une classe.

(Hérité de FrameworkElement)
OnBringIntoViewRequested(BringIntoViewRequestedEventArgs)

Appelé avant l’événement BringIntoViewRequested .

(Hérité de UIElement)
OnCreateAutomationPeer()

En cas d’implémentation dans une classe dérivée, retourne des implémentations AutomationPeer spécifiques à la classe pour l’infrastructure Microsoft UI Automation.

(Hérité de UIElement)
OnDisconnectVisualChildren()

Remplacez cette méthode pour implémenter le comportement de la disposition et de la logique lorsque des éléments sont supprimés d’une propriété enfant ou de contenu spécifique à une classe.

(Hérité de UIElement)
OnKeyboardAcceleratorInvoked(KeyboardAcceleratorInvokedEventArgs)

Appelé lorsqu’un raccourci clavier (ou accélérateur) est traité dans votre application. Remplacez cette méthode pour gérer la façon dont votre application répond lorsqu’un accélérateur de clavier est appelé.

(Hérité de UIElement)
OnProcessKeyboardAccelerators(ProcessKeyboardAcceleratorEventArgs)

Appelé juste avant qu’un raccourci clavier (ou accélérateur) ne soit traité dans votre application. Appelé chaque fois que le code d’application ou les processus internes appellent ProcessKeyboardAccelerators. Remplacez cette méthode pour influencer la gestion de l’accélérateur par défaut.

(Hérité de UIElement)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Définit une propriété qui peut être animée.

(Hérité de UIElement)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

En cas de substitution dans une classe dérivée, définit une propriété qui peut être animée.

(Hérité de UIElement)
ReadLocalValue(DependencyProperty)

Retourne la valeur locale d’une propriété de dépendance, si une valeur locale est définie.

(Hérité de DependencyObject)
Refresh()

Recharge le contenu actuel dans webView.

RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Inscrit une fonction de notification pour écouter les modifications apportées à un DependencyProperty spécifique sur ce instance DependencyObject.

(Hérité de DependencyObject)
ReleasePointerCapture(Pointer)

Libère les captures de pointeur pour la capture d’un pointeur spécifique par cet UIElement.

(Hérité de UIElement)
ReleasePointerCaptures()

Libère toutes les captures de pointeur détenues par cet élément.

(Hérité de UIElement)
RemoveHandler(RoutedEvent, Object)

Supprime le gestionnaire d’événements routés spécifié de cet UIElement. En règle générale, le gestionnaire en question a été ajouté par AddHandler.

(Hérité de UIElement)
SetBinding(DependencyProperty, BindingBase)

Attache une liaison à un FrameworkElement à l’aide de l’objet de liaison fourni.

(Hérité de FrameworkElement)
SetValue(DependencyProperty, Object)

Définit la valeur locale d’une propriété de dépendance sur un DependencyObject.

(Hérité de DependencyObject)
StartAnimation(ICompositionAnimationBase)

Commence l’animation spécifiée sur l’élément .

(Hérité de UIElement)
StartBringIntoView()

Lance une demande à l’infrastructure XAML pour afficher l’élément dans toutes les régions défilantes dans lesquelles il se trouve.

(Hérité de UIElement)
StartBringIntoView(BringIntoViewOptions)

Lance une demande à l’infrastructure XAML pour afficher l’élément à l’aide des options spécifiées.

(Hérité de UIElement)
StartDragAsync(PointerPoint)

Démarre une opération de glisser-déplacer.

(Hérité de UIElement)
Stop()

Arrête la navigation ou le téléchargement WebView actuel.

StopAnimation(ICompositionAnimationBase)

Arrête l’animation spécifiée sur l’élément .

(Hérité de UIElement)
TransformToVisual(UIElement)

Retourne un objet de transformation qui peut être utilisé pour transformer les coordonnées de l’élément UIElement en l’objet spécifié.

(Hérité de UIElement)
TryInvokeKeyboardAccelerator(ProcessKeyboardAcceleratorEventArgs)

Tente d’appeler un raccourci clavier (ou accélérateur) en recherchant le raccourci dans toute l’arborescence visuelle de l’élément UIElement.

(Hérité de UIElement)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Annule une notification de modification précédemment inscrite en appelant RegisterPropertyChangedCallback.

(Hérité de DependencyObject)
UpdateLayout()

Garantit que toutes les positions des objets enfants d’un UIElement sont correctement mises à jour pour la disposition.

(Hérité de UIElement)

Événements

AccessKeyDisplayDismissed

Se produit lorsque les clés d’accès ne doivent plus être affichées.

(Hérité de UIElement)
AccessKeyDisplayRequested

Se produit lorsque l’utilisateur demande que les clés d’accès soient affichées.

(Hérité de UIElement)
AccessKeyInvoked

Se produit lorsqu’un utilisateur termine une séquence de touches d’accès.

(Hérité de UIElement)
ActualThemeChanged

Se produit lorsque la valeur de la propriété ActualTheme a changé.

(Hérité de FrameworkElement)
BringIntoViewRequested

Se produit lorsque StartBringIntoView est appelé sur cet élément ou l’un de ses descendants.

(Hérité de UIElement)
CharacterReceived

Se produit lorsqu’un caractère composé unique est reçu par la file d’attente d’entrée.

(Hérité de UIElement)
ContainsFullScreenElementChanged

Se produit lorsque le status de savoir si webView contient ou non un élément plein écran.

ContentLoading

Se produit lorsque webView a commencé à charger du nouveau contenu.

ContextCanceled

Se produit lorsqu’un mouvement d’entrée de contexte continue dans un mouvement de manipulation, pour avertir l’élément que le menu volant de contexte ne doit pas être ouvert.

(Hérité de UIElement)
ContextRequested

Se produit lorsque l’utilisateur a terminé un mouvement d’entrée de contexte, tel qu’un clic droit.

(Hérité de UIElement)
DataContextChanged

Se produit lorsque la valeur de la propriété FrameworkElement.DataContext change.

(Hérité de FrameworkElement)
DOMContentLoaded

Se produit lorsque webView a terminé l’analyse du contenu HTML actuel.

DoubleTapped

Se produit lorsqu’une interaction DoubleTap non prise en charge se produit sur la zone de test d’accès de cet élément.

(Hérité de UIElement)
DragEnter

Se produit lorsque le système d’entrée signale un événement de glissement sous-jacent avec cet élément comme cible.

(Hérité de UIElement)
DragLeave

Se produit lorsque le système d’entrée signale un événement de glissement sous-jacent avec cet élément comme origine.

(Hérité de UIElement)
DragOver

Se produit quand le système d’entrée signale un événement de glissement sous-jacent avec pour cible de dépôt potentielle cet élément.

(Hérité de UIElement)
DragStarting

Se produit lorsqu’une opération de glisser-glisser est lancée.

(Hérité de UIElement)
Drop

Se produit quand le système d’entrée signale un événement de déplacement sous-jacent avec cet élément comme cible de déplacement.

(Hérité de UIElement)
DropCompleted

Se produit lorsqu’une opération de glisser-déplacer avec cet élément comme source est terminée.

(Hérité de UIElement)
EffectiveViewportChanged

Se produit lorsque la fenêtre d’affichage effective de FrameworkElement change.

(Hérité de FrameworkElement)
FrameContentLoading

Se produit lorsqu’un cadre du WebView a commencé à charger du nouveau contenu.

FrameDOMContentLoaded

Se produit lorsqu’un cadre du WebView a terminé l’analyse de son contenu HTML actuel.

FrameNavigationCompleted

Se produit lorsqu’un cadre du WebView a terminé de charger son contenu.

FrameNavigationStarting

Se produit avant qu’une trame du WebView accède au nouveau contenu.

GettingFocus

Se produit avant qu’un élément UIElement ne reçoive le focus. Cet événement est déclenché de manière synchrone pour garantir que le focus n’est pas déplacé pendant que l’événement est en cours de bulles.

(Hérité de UIElement)
GotFocus

Se produit lorsqu’un élément UIElement reçoit le focus. Cet événement est déclenché de manière asynchrone, de sorte que le focus peut se déplacer à nouveau avant que le bouillonnement ne soit terminé.

(Hérité de UIElement)
Holding

Se produit lorsqu’une interaction hold non prise en charge se produit sur la zone de test d’accès de cet élément.

(Hérité de UIElement)
KeyDown

Se produit lorsqu’une touche de clavier est enfoncée alors que l’élément UIElement a le focus.

(Hérité de UIElement)
KeyUp

Se produit lorsqu’une touche de clavier est libérée alors que l’élément UIElement a le focus.

(Hérité de UIElement)
LayoutUpdated

Se produit lorsque la disposition de l’arborescence visuelle change, en raison de la modification de la valeur des propriétés pertinentes pour la disposition ou d’une autre action qui actualise la disposition.

(Hérité de FrameworkElement)
LoadCompleted

Notes

LoadCompleted peut être modifié ou indisponible pour les versions après Windows 8.1. Utilisez plutôt NavigationCompleted.

Se produit lorsque la navigation de niveau supérieur se termine et que le contenu se charge dans le contrôle WebView ou lorsqu’une erreur se produit pendant le chargement.

Loaded

Se produit lorsqu’un FrameworkElement a été construit et ajouté à l’arborescence d’objets et qu’il est prêt pour l’interaction.

(Hérité de FrameworkElement)
Loading

Se produit lorsqu’un élément FrameworkElement commence à se charger.

(Hérité de FrameworkElement)
LongRunningScriptDetected

Se produit régulièrement pendant que WebView exécute JavaScript, ce qui vous permet d’arrêter le script.

LosingFocus

Se produit avant qu’un élément UIElement ne perde le focus. Cet événement est déclenché de manière synchrone pour garantir que le focus n’est pas déplacé pendant que l’événement est en cours de bulles.

(Hérité de UIElement)
LostFocus

Se produit lorsqu’un élément UIElement perd le focus. Cet événement est déclenché de manière asynchrone, de sorte que le focus peut se déplacer à nouveau avant que le bouillonnement ne soit terminé.

(Hérité de UIElement)
ManipulationCompleted

Se produit lorsqu’une manipulation sur l’élément UIElement est terminée.

(Hérité de UIElement)
ManipulationDelta

Se produit lorsque le périphérique d'entrée change de position pendant une manipulation.

(Hérité de UIElement)
ManipulationInertiaStarting

Se produit lorsque le périphérique d’entrée perd le contact avec l’objet UIElement durant une manipulation et que cela entraîne un début d’inertie.

(Hérité de UIElement)
ManipulationStarted

Se produit lorsqu’un périphérique d’entrée entame une manipulation sur l’objet UIElement.

(Hérité de UIElement)
ManipulationStarting

Se produit lorsque le processeur de manipulation est créé initialement.

(Hérité de UIElement)
NavigationCompleted

Se produit lorsque webView a terminé le chargement du contenu actuel ou si la navigation a échoué.

NavigationFailed

Notes

NavigationFailed peut être modifié ou indisponible pour les versions après Windows 8.1. Utilisez plutôt NavigationCompleted.

Se produit lorsque webView ne peut pas terminer la tentative de navigation.

NavigationStarting

Se produit avant que webView accède au nouveau contenu.

NewWindowRequested

Se produit lorsqu’un utilisateur effectue une action dans une vue web qui provoque l’ouverture du contenu dans une nouvelle fenêtre.

NoFocusCandidateFound

Se produit lorsqu’un utilisateur tente de déplacer le focus (via des onglets ou des flèches directionnelles), mais que le focus ne se déplace pas, car aucun candidat de focus n’est trouvé dans la direction du mouvement.

(Hérité de UIElement)
PermissionRequested

Se produit lorsqu’une action dans un WebView nécessite que l’autorisation soit accordée.

PointerCanceled

Se produit lorsqu’un pointeur qui a effectué un contact anormalement perd le contact.

(Hérité de UIElement)
PointerCaptureLost

Se produit lorsque la capture de pointeur précédemment détenue par cet élément se déplace vers un autre élément ou ailleurs.

(Hérité de UIElement)
PointerEntered

Se produit lorsqu’un pointeur entre dans la zone de test d’accès de cet élément.

(Hérité de UIElement)
PointerExited

Se produit lorsqu’un pointeur quitte la zone de test d’accès de cet élément.

(Hérité de UIElement)
PointerMoved

Se produit lorsqu’un pointeur se déplace alors que le pointeur reste dans la zone de test d’accès de cet élément.

(Hérité de UIElement)
PointerPressed

Se produit lorsque l’appareil pointeur lance une action Appuyer dans cet élément.

(Hérité de UIElement)
PointerReleased

Se produit lorsque l’appareil pointeur qui a précédemment lancé une action Appuyer est libéré, au sein de cet élément. Notez que la fin d’une action Appuyer n’est pas garantie pour déclencher un événement PointerReleased ; d’autres événements peuvent se déclencher à la place. Pour plus d’informations, consultez Remarques.

(Hérité de UIElement)
PointerWheelChanged

Se produit lorsque la valeur delta d’une roue de pointeur change.

(Hérité de UIElement)
PreviewKeyDown

Se produit lorsqu’une touche de clavier est enfoncée alors que l’élément UIElement a le focus.

(Hérité de UIElement)
PreviewKeyUp

Se produit lorsqu’une touche de clavier est libérée alors que l’élément UIElement a le focus.

(Hérité de UIElement)
ProcessKeyboardAccelerators

Se produit lorsqu’un raccourci clavier (ou un accélérateur) est enfoncé.

(Hérité de UIElement)
RightTapped

Se produit lorsqu’un stimulus d’entrée à droite se produit alors que le pointeur se trouve sur l’élément.

(Hérité de UIElement)
ScriptNotify

Se produit lorsque le contenu contenu dans le contrôle WebView passe une chaîne à l’application à l’aide de JavaScript.

SeparateProcessLost

Se produit lorsqu’un WebView s’exécute avec un Mode d’exécutionde SeparateProcess et que le processus distinct est perdu.

SizeChanged

Se produit lorsque la propriété ActualHeight ou ActualWidth modifie la valeur d’un FrameworkElement.

(Hérité de FrameworkElement)
Tapped

Se produit lorsqu’une interaction Tap non prise en charge se produit sur la zone de test d’accès de cet élément.

(Hérité de UIElement)
Unloaded

Se produit lorsque cet objet n’est plus connecté à l’arborescence d’objets main.

(Hérité de FrameworkElement)
UnsafeContentWarningDisplaying

Se produit lorsque webView affiche une page d’avertissement pour le contenu signalé comme non sécurisé par le filtre SmartScreen.

UnsupportedUriSchemeIdentified

Se produit lorsqu’une tentative d’accès à un URI (Uniform Resource Identifier) est effectuée à l’aide d’un schéma que WebView ne prend pas en charge.

UnviewableContentIdentified

Se produit lorsque WebView tente de télécharger un fichier non pris en charge.

WebResourceRequested

Se produit lorsqu’une requête HTTP a été effectuée.

S’applique à

Voir aussi