WebView Classe

Definizione

Fornisce un controllo che ospita contenuto HTML in un'app.

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 .../>
Ereditarietà
Object Platform::Object IInspectable DependencyObject UIElement FrameworkElement WebView
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

Suggerimento

Per altre info, linee guida per la progettazione ed esempi di codice, vedi Visualizzazione Web.

Se è installata l'app WinUI 2 Gallery , fai clic qui per aprire l'app e vedere WebView in azione.

Nell'esempio di codice seguente viene illustrato come passare a un WebView a un URI contenuto in un controllo TextBox denominato Address.

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

Nell'esempio di codice seguente viene illustrato come caricare codice HTML locale in un controllo WebView.

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

Commenti

Usare il controllo WebView per ospitare contenuto Web nell'app. Le app per Surface Hub o Xbox devono usare questo controllo WebView.

Importante

Per le app desktop, ti consigliamo di usare il controllo WebView2 , disponibile come parte della libreria dell'interfaccia utente di Windows 2 per la piattaforma UWP (WinUI 2). WebView2 usa Microsoft Edge (Chromium) come motore di rendering per visualizzare il contenuto Web nelle app. Per altre info, vedi Introduzione a Microsoft Edge WebView2, Introduzione a WebView2 nelle app WinUI 2 (UWP) e WebView2 nelle informazioni di riferimento sulle API WinUI.

Importante

Isole XAML: questo controllo non è supportato nelle app delle isole XAML. Per altre alternative, vedi Isole XAML - Controlli visualizzazione Web.

WebView non è una sottoclasse Control e pertanto non dispone di un modello di controllo. È possibile impostare varie proprietà per controllare alcuni aspetti visivi di WebView. L'area di visualizzazione è vincolata dalle proprietà Width e Height . Per convertire, ridimensionare, asimmetrie e ruotare un controllo WebView, utilizzare la proprietà RenderTransform . Per controllare l'opacità di WebView, impostare la proprietà Opacity . Per specificare un colore da usare come sfondo della pagina Web quando il contenuto HTML non specifica un colore, imposta la proprietà DefaultBackgroundColor.

È possibile ottenere il titolo del documento HTML attualmente visualizzato in WebView usando la proprietà DocumentTitle .

Anche se WebView non è una sottoclasse Control , riceverà lo stato attivo dell'input della tastiera e parteciperà alla sequenza di schede. Include un metodo Focus e gli eventi GotFocus e LostFocus, ma non ha alcuna proprietà correlata all'ordine di tabulazione. La sua posizione nella sequenza di tabulazione è la stessa che occupa nell'ordine del documento XAML. La sequenza di schede include tutti gli elementi del contenuto WebView che possono ricevere lo stato attivo per l'input.

Come indicato nella tabella Eventi, WebView non supporta la maggior parte degli eventi di input utente ereditati da UIElement, ad esempio KeyDown, KeyUp e PointerPressed. Una soluzione alternativa comune consiste nell'usare InvokeScriptAsync con la funzione JavaScript eval per usare i gestori eventi HTML e per usare window.external.notify dal gestore eventi HTML per notificare all'applicazione tramite WebView.ScriptNotify.

Nelle app compilate per Windows 10, WebView usa il motore di rendering di Microsoft Edge per visualizzare il contenuto HTML. Nelle app compilate per Windows 8 o Windows 8.1, WebView usa Internet Explorer 11 in modalità documento. Non supporta controlli o plug-in Microsoft ActiveX, ad esempio Microsoft Silverlight o file PDF (Portable Document Format).

WebView offre diverse API per la navigazione di base: GoBack, GoForward, Stop, Refresh, CanGoBack e CanGoForward. Puoi usare questi elementi per aggiungere funzionalità tipiche dell'esplorazione Web alla tua app.

Per impostare il contenuto iniziale di WebView, impostare la proprietà Source in XAML. Il parser XAML converte automaticamente la stringa in 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 proprietà Source può essere impostata nel codice, ma invece di farlo, in genere si usa uno dei metodi Navigate per caricare il contenuto nel codice.

Per caricare il contenuto Web, usare il metodo Navigate con un URI che usa lo schema http o https .

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

Per passare a un URI (Uniform Resource Identifier) con una richiesta POST e intestazioni HTTP, usare il metodo NavigateWithHttpRequestMessage . Questo metodo supporta solo HttpMethod.Post e HttpMethod.Get per il valore della proprietà HttpRequestMessage.Method.

Per caricare contenuto non compresso e non crittografato dagli archivi dati LocalFolder o TemporaryFolder dell'app, usare il metodo Navigate con un Uri che usa lo schema ms-appdata. Il supporto di WebView per questo schema richiede di inserire il contenuto in una sottocartella nella cartella locale o temporanea. In questo modo è possibile spostarsi all'URI (Uniform Resource Identifier), ad esempio ilfile ms-appdata:///local/ folder/.html e ilfile ms-appdata:///temp/ folder/.html. Per caricare file compressi o crittografati, vedi NavigateToLocalStreamUri.

Ognuna di queste sottocartelle di primo livello è isolata dal contenuto nelle altre sottocartelle di primo livello. Ad esempio, è possibile passare a ms-appdata:///temp/folder1/file.html, ma non è possibile avere un collegamento in questo file a ms-appdata:///temp/folder2/file.html. Tuttavia, è comunque possibile collegarsi al contenuto HTML nel pacchetto dell'app usando lo schema ms-appx-web e il contenuto Web usando gli schemi URI (Uniform Resource Identifier) http e https .

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

Per caricare il contenuto dal pacchetto dell'app, usa il metodo Navigate con un Uri che usa lo schema ms-appx-web.

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

Puoi caricare contenuto locale tramite un resolver personalizzato con il metodo NavigateToLocalStreamUri. Sono così possibili scenari avanzati come il download e la memorizzazione nella cache di contenuto basato su Web per l'uso offline o l'estrazione di contenuto da un file compresso.

Risposta agli eventi di spostamento

WebView offre diversi eventi che è possibile usare per rispondere agli stati di spostamento e caricamento del contenuto. Gli eventi si verificano nell'ordine seguente per il contenuto WebView radice:

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 : si verifica quando WebView ha avviato il caricamento di nuovo contenuto.
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 : si verifica al termine dell'analisi del contenuto HTML corrente da parte di WebView.
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();
    }
}

Eventi simili si verificano nello stesso ordine per ogni iframe nel contenuto WebView:

Risposta ai potenziali problemi

È possibile rispondere a potenziali problemi con il contenuto, ad esempio script a esecuzione prolungata, contenuto che WebView non può caricare e avvisi di contenuto non sicuro.

L'app potrebbe sembrare bloccata durante l'esecuzione degli script. L'evento LongRunningScriptDetected si verifica periodicamente mentre WebView esegue JavaScript e offre l'opportunità di interrompere lo script. Per determinare la durata dell'esecuzione dello script, controlla la proprietà ExecutionTime di WebViewLongRunningScriptDetectedEventArgs. Per interrompere lo script, imposta la proprietà StopPageScriptExecution degli argomenti dell'evento su true. Lo script interrotto non verrà eseguito di nuovo a meno che non venga ricaricato durante una successiva navigazione WebView.

Il controllo WebView non può ospitare tipi di file arbitrari. Quando viene eseguito un tentativo di caricamento del contenuto che WebView non può ospitare, si verifica l'evento UnviewableContentIdentified . Puoi gestire questo evento e inviare notifica all'utente o usare la classe Launcher per reindirizzare il file in un browser esterno o un'altra app.

Analogamente, l'evento UnsupportedUriSchemeIdentified si verifica quando uno schema URI (Uniform Resource Identifier) non supportato viene richiamato nel contenuto Web, ad esempio fbconnect:// o mailto://. È possibile gestire questo evento per fornire un comportamento personalizzato anziché consentire al launcher di sistema predefinito di avviare l'URI (Uniform Resource Identifier).

L'evento UnsafeContentWarningDisplaying si verifica quando WebView mostra una pagina di avviso per il contenuto segnalato come non sicuro dal filtro SmartScreen. Se l'utente sceglie di continuare lo spostamento, per gli spostamenti successivi nella pagina non verrà visualizzato il messaggio e non verrà generato l'evento.

Gestione di casi speciali per il contenuto di WebView

Puoi usare la proprietà ContainsFullScreenElement e l'evento ContainsFullScreenElementChanged per rilevare, rispondere e abilitare esperienze a schermo intero nel contenuto Web, ad esempio la riproduzione di video a schermo intero. Ad esempio, è possibile usare l'evento ContainsFullScreenElementChanged per ridimensionare WebView per occupare l'intera dimensione della visualizzazione dell'app oppure, come illustrato nell'esempio seguente, inserire un'app finestrata in modalità schermo intero quando si desidera un'esperienza Web a schermo intero.

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

Puoi usare l'evento NewWindowRequested per gestire i casi in cui il contenuto Web ospitato richiede una nuova finestra per essere visualizzato, ad esempio una finestra popup. Puoi usare un altro controllo WebView per visualizzare il contenuto della finestra richiesta.

Usa l'evento PermissionRequested per abilitare le funzionalità Web che richiedono funzionalità speciali, tra cui attualmente la georilevazione, l'archiviazione IndexedDB e audio e video dell'utente (ad esempio, da un microfono o una webcam). Se la tua app accede alla posizione o ad elementi multimediali dell'utente, è comunque necessario dichiarare questa funzionalità nel manifesto dell'app. Ad esempio, un'app che usa la georilevazione richiede come minimo le seguenti dichiarazioni di funzionalità in Package.appxmanifest:

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

Oltre al fatto che l'app deve gestire l'evento PermissionRequested, l'utente dovrà approvare le finestre di dialogo di sistema standard per le app che richiedono la posizione o funzionalità multimediali, per consentire l'abilitazione di queste funzionalità.

Ecco un esempio di come abilitare la georilevazione in una mappa di Bing in un'app:

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

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

Se l'app richiede l'input dell'utente o altre operazioni asincrone per rispondere a una richiesta di autorizzazione, usa il metodo Defer di WebViewPermissionRequest per creare una WebViewDeferredPermissionRequest su cui è possibile intervenire in seguito. Vedi WebViewPermissionRequest.Defer.

Se gli utenti devono disconnettersi in modo sicuro da un sito Web ospitato in WebView o in altri casi quando la sicurezza è importante, chiamare il metodo statico ClearTemporaryWebDataAsync per cancellare tutto il contenuto memorizzato nella cache locale da una sessione WebView. In questo modo si impedisce l'accesso a dati sensibili da parte di utenti malintenzionati.

Interazione con il contenuto di WebView

È possibile interagire con il contenuto di WebView usando il metodo InvokeScriptAsync per richiamare o inserire script nel contenuto WebView e l'evento ScriptNotify per recuperare informazioni dal contenuto di WebView.

Per richiamare JavaScript all'interno del contenuto WebView, usare il metodo InvokeScriptAsync . Lo script richiamato può restituire solo valori stringa.

Ad esempio, se il contenuto di un WebView denominato webViewA contiene una funzione denominata setDate che accetta 3 parametri, è possibile richiamarla come questa.

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

Puoi usare InvokeScriptAsync con la funzione JavaScript eval per inserire contenuto nella pagina Web.

In questo caso, il testo di una casella di testo XAML (nameTextBox.Text) viene scritto in un div in una pagina HTML ospitata in 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 });
}

Gli script nel contenuto WebView possono usare window.external.notify con un parametro stringa per inviare le informazioni all'app. Per ricevere questi messaggi, dovrai gestire l'evento ScriptNotify.

Per abilitare una pagina Web esterna per generare l'evento ScriptNotify quando si chiama window.external.notify, è necessario includere l'URI (Uniform Resource Identifier) della pagina nella sezione ApplicationContentUriRules del manifesto dell'app. È possibile eseguire questa operazione in Microsoft Visual Studio nella scheda URI contenuto della finestra di progettazione Package.appxmanifest. Gli URI in questo elenco devono usare HTTPS e possono contenere caratteri jolly di sottodominio (ad esempio, https://.microsoft.com) ma non possono contenere caratteri jolly di dominio, ad esempio https://.com e https://. Il requisito per il manifesto non si applica al contenuto che proviene dal pacchetto dell'app, usa un URI ms-local-stream:// oppure viene caricato tramite NavigateToString.

Accesso alla Windows Runtime in WebView

A partire da Windows 10, è possibile usare il metodo AddWebAllowedObject per inserire un'istanza di una classe nativa da un componente Windows Runtime nel contesto JavaScript di WebView. Ciò consente l'accesso completo ai metodi, alle proprietà e agli eventi nativi di tale oggetto nel contenuto JavaScript di tale WebView. La classe deve essere decorata con l'attributo AllowForWeb.

Ad esempio, questo codice inserisce un'istanza di MyClass importata da un componente Windows Runtime in WebView.

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

Per altre informazioni, vedi WebView.AddWebAllowedObject.

Inoltre, il contenuto JavaScript attendibile in WebView può essere consentito per accedere direttamente a Windows RuntimeAPI. In questo modo sono disponibili funzionalità native potenti per le app Web ospitate in WebView. Per abilitare questa funzionalità, l'URI (Uniform Resource Identifier) per il contenuto attendibile deve essere aggiunto all'elenco allowlist nell'applicazione ApplicationContentUriRules dell'app in Package.appxmanifest, con WindowsRuntimeAccess specificamente impostato su "all".

Questo esempio mostra una sezione del manifesto dell'app. In questo caso viene assegnato un URI (Uniform Resource Identifier) locale all'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>

Opzioni per l'hosting di contenuto Web

A partire da Windows 10, è possibile usare la proprietà WebView.Settings (di tipo WebViewSettings) per controllare se JavaScript e IndexedDB sono abilitati. Ad esempio, se si usa WebView per visualizzare contenuto strettamente statico, è possibile disabilitare JavaScript per ottenere prestazioni ottimali.

Acquisizione del contenuto di WebView

Per abilitare la condivisione del contenuto WebView con altre app, usare il metodo CaptureSelectedContentToDataPackageAsync , che restituisce il contenuto selezionato come DataPackage. Questo metodo è asincrono, pertanto devi usare un differimento per impedire al gestore dell'evento DataRequested di restituire il controllo prima del completamento della chiamata asincrona.

Per ottenere un'immagine di anteprima del contenuto corrente di WebView, usare il metodo CapturePreviewToStreamAsync . Questo metodo crea un'immagine del contenuto corrente e la scrive nel flusso specificato.

Modalità di esecuzione

Per impostazione predefinita, il contenuto WebView è ospitato nel thread dell'interfaccia utente nei dispositivi nella famiglia di dispositivi desktop e disattivato il thread dell'interfaccia utente in tutti gli altri dispositivi. Puoi usare la proprietà statica WebView.DefaultExecutionMode per richiedere il comportamento di threading predefinito per il client corrente. Se necessario, puoi usare il costruttore WebView(WebViewExecutionMode) per eseguire l'override di questo comportamento.

I valori WebViewExecutionMode supportati sono:

  • SameThread : il contenuto di WebView è ospitato nel thread dell'interfaccia utente.
  • SeparateThread : il contenuto di WebView è ospitato in un thread separato dal thread dell'interfaccia utente.
  • SeparateProcess: (Windows 10, versione 1803 o successiva) Il contenuto di WebView è ospitato in un processo separato dal processo dell'app. Tutte le istanze di WebView di un'app condividono lo stesso processo separato, non esiste un processo separato per ogni istanza di WebView.

Quando si esegue in un processo separato, WebView esebita due differenze di comportamento:

  • Il processo WebView potrebbe terminare. È possibile ricevere una notifica in ascolto dell'evento SeparateProcessLost .
  • Il processo WebView potrebbe rifiutare in modo asincrono lo stato attivo della tastiera. In questo caso, il metodo WebView.Focus restituisce true e quindi immediatamente (ma in modo asincrono), lo stato attivo si allontana da WebView. Altri modi di spostare lo stato attivo si comportano in modo analogo, ad esempio FocusManager.TryMoveFocus. È possibile tenere traccia di questa operazione in modo più esplicito usando le API FocusManager.TryFocusAsync o FocusManager.TryMoveFocusAsync .

In questo esempio viene illustrato come creare un controllo WebView eseguito in un processo separato dall'app host e verrà ricreato se il processo separato viene perso.

<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

Potrebbero verificarsi problemi di prestazioni durante l'hosting del contenuto nel thread dell'interfaccia utente nei dispositivi mobili, quindi assicurarsi di testare su tutti i dispositivi di destinazione quando si modifica DefaultExecutionMode.

WebView che ospita il contenuto del thread dell'interfaccia utente non è compatibile con i controlli padre che richiedono la propagazione dei movimenti dal controllo WebView all'elemento padre, ad esempio FlipView, ScrollViewer e altri controlli correlati. Questi controlli non saranno in grado di ricevere i movimenti avviati in WebView off-thread. Inoltre, la stampa di contenuto Web al di fuori del thread non è supportata direttamente. Dovresti invece stampare un elemento con il riempimento WebViewBrush.

Comportamento attivo per WebView in un processo separato

Indipendentemente dall'esecuzione nel processo dell'app o da un processo separato, è possibile impostare lo stato attivo su Un Controllo Web chiamando il metodo WebView.Focus. Equivale ai metodi Control.Focus e Hyperlink.Focus (si noti che WebView non deriva da Control).

Analogamente, diversi metodi della classe FocusManager possono influire su un Oggetto WebView (o Controllo o collegamento ipertestuale): TryMoveFocus, FindNextFocusableElement, FindLastFocusableElement e GetFocusedElement. Ad esempio, TryMoveFocus sposta lo stato attivo su un WebView e GetFocusedElement restituisce un WebView con stato attivo.

Infine, lo spostamento dello stato attivo verso o da un WebView genera eventi di messa a fuoco, sia sul WebView stesso che sull'elemento che perde o riceve lo stato attivo. Gli eventi sono LostFocus, LostFocus, GettingFocus e GotFocus. Ad esempio, quando lo stato attivo passa da un controllo a un Controllo a un WebView, il controllo genererà gli eventi LostFocus e LostFocus e WebView genererà gli eventi GettingFocus e GotFocus.

Quando un controllo WebView è in esecuzione in un processo separato, il comportamento di queste API cambia leggermente. Supponendo che WebView sia attivabile, il metodo WebView.Focus restituirà true (esito positivo), ma lo stato attivo non è ancora stato spostato. Lo stesso è true se anziché il metodo WebView.Focus, FocusManager.TryMoveFocus viene chiamato e identifica un Elemento WebView come elemento attivo successivo.

Le differenze nel comportamento sono:

  • FocusManager.GetFocusedElement non restituisce WebView a meno che non venga completata l'operazione asincrona.
  • Il controllo che perde lo stato attivo riceverà l'evento LosingFocus in modo sincrono; tuttavia, non riceveRà LostFocus a meno che non venga completata l'operazione asincrona.
  • Analogamente, l'evento GettingFocus si verificherà in modo sincrono in WebView; Tuttavia, l'evento GotFocus non verrà generato a meno che non venga completata l'operazione asincrona.

Nessuna di queste modifiche se si chiama FocusManager.TryFocusAsync. Tuttavia, il metodo asincrono offre l'opportunità di determinare se la modifica dello stato attivo ha avuto esito positivo.

La chiamata a FocusManager.TryMoveFocusAsync su un elemento diverso da un controllo WebView in un processo separato completerà in modo sincrono.

In questo esempio viene illustrato come spostare lo stato attivo sull'elemento logico successivo, ma se ha esito negativo, ripristinare lo stato attivo sulla posizione iniziale.

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 dell'avviso

Se una pagina Web ospitata in un WebView usa la funzione Avviso JavaScript, non verrà visualizzata. Questa funzionalità è progettata per tutte le versioni di WebView.

È possibile intercettare le informazioni visualizzate da un avviso ed eseguire le operazioni desiderate nell'applicazione host. Il fatto che ciò sia possibile dipende dal modo in cui viene scritta la pagina e dal controllo. È disponibile un esempio che illustra una possibile tecnica per eseguire questa operazione. L'esempio viene scritto per Windows 8.1 e Windows Phone 8.1, ma funzionerà anche per le app che usano il piattaforma UWP (Universal Windows Platform) (UWP). Tuttavia, questo potrebbe non funzionare per ogni scenario.

Come intercettare l'avviso JavaScript in WebView nell'esempio di app di Windows universali

Note per le versioni precedenti

Windows 8.1

Le API WebView seguenti sono deprecate in Windows 8.1:

Solo in Windows è possibile gestire l'evento UnsafeContentWarningDisplaying . Questo evento si verifica quando WebView visualizza una pagina di avviso per il contenuto segnalato come non sicuro dal filtro SmartScreen. Se l'utente sceglie di continuare lo spostamento, per gli spostamenti successivi nella pagina non verrà visualizzato il messaggio e non verrà generato l'evento. Questo evento non viene implementato per Windows Phone.

Quando si richiama JavaScript all'interno di WebView chiamando il metodo InvokeScriptAsync , le funzioni che richiedono una finestra secondaria, ad esempio Alert, non sono supportate.

Windows Phone 8

L'evento UnsafeContentWarningDisplaying non viene implementato per Windows Phone prima di Windows 10.

Windows 8

Queste osservazioni si applicano solo alle app compilate per Windows 8, anche quando vengono eseguite in Windows 8.1 o versioni successive.

In Windows 8,WebView ha la caratteristica che non è possibile eseguire il rendering di altre aree dell'interfaccia utente, ad esempio i controlli, sopra WebView. Questo "problema dello spazio aereo" è dovuto al modo in cui le aree finestra vengono gestite internamente, in particolare il modo in cui vengono elaborati gli eventi di input e il modo in cui viene disegnato lo schermo. Se si vuole eseguire il rendering del contenuto HTML e posizionare anche altri elementi dell'interfaccia utente sopra il contenuto HTML, è consigliabile usare WebViewBrush come area di rendering. WebView fornisce ancora le informazioni sull'origine HTML e si fa riferimento a WebView tramite la proprietà SourceName . WebViewBrush non presenta questa limitazione della sovrimpressione.

Se si desidera visualizzare un controllo WebView interattivo con contenuto sovrapposto solo occasionalmente, ad esempio un elenco a discesa o una barra dell'app, è possibile nascondere temporaneamente il controllo WebView quando necessario, sostituendolo con un elemento usando un riempimento WebViewBrush . Quindi, quando il contenuto sovrapposto non è più presente, è possibile visualizzare di nuovo l'oggetto WebView originale.

Nota

Il problema dello spazio aereo è stato risolto a partire da Windows 8.1 e non si applica alle app destinate a Windows 8.1 o Windows 10.

WebView usa sempre Internet Explorer 10 in modalità documento.

Cronologia delle versioni

Versione di Windows Versione dell'SDK Valore aggiunto
1607 14393 XYFocusDown
1607 14393 XYFocusLeft
1607 14393 XYFocusRight
1607 14393 XYFocusUp
1803 17134 SeparateProcessLost
1809 17763 WebResourceRequested

Costruttori

WebView()

Inizializza una nuova istanza della classe WebView .

WebView(WebViewExecutionMode)

Inizializza una nuova istanza della classe WebView con la modalità di esecuzione specificata.

Proprietà

AccessKey

Ottiene o imposta la chiave di scelta (mnemonica) per questo elemento.

(Ereditato da UIElement)
AccessKeyScopeOwner

Ottiene o imposta un elemento di origine che fornisce l'ambito della chiave di accesso per questo elemento, anche se non si trova nella struttura ad albero visuale dell'elemento di origine.

(Ereditato da UIElement)
ActualHeight

Ottiene l'altezza di cui è stato eseguito il rendering di un FrameworkElement. Vedere la sezione Osservazioni.

(Ereditato da FrameworkElement)
ActualOffset

Ottiene la posizione di questo uiElement, rispetto al relativo elemento padre, calcolata durante il passaggio di disposizione del processo di layout.

(Ereditato da UIElement)
ActualSize

Ottiene le dimensioni calcolate da questo UIElement durante il passaggio di disposizione del processo di layout.

(Ereditato da UIElement)
ActualTheme

Ottiene il tema dell'interfaccia utente attualmente utilizzato dall'elemento , che potrebbe essere diverso da RequestedTheme.

(Ereditato da FrameworkElement)
ActualWidth

Ottiene la larghezza sottoposta a rendering di un oggetto FrameworkElement. Vedere la sezione Osservazioni.

(Ereditato da FrameworkElement)
AllowDrop

Ottiene o imposta un valore che determina se questo UIElement può essere una destinazione di rilascio ai fini delle operazioni di trascinamento della selezione.

(Ereditato da UIElement)
AllowedScriptNotifyUris

Nota

AllowedScriptNotifyUris non è supportato nelle app compilate per Windows 8.1. Aggiornare invece la sezione ApplicationContentUriRules del manifesto dell'app. Per altre informazioni, vedere la sezione Osservazioni.

Ottiene o imposta un elenco sicuro di URI consentiti per generare eventi ScriptNotify in questo WebView.

AllowedScriptNotifyUrisProperty

Nota

AllowedScriptNotifyUrisProperty non è supportato nelle app compilate per Windows 8.1. Aggiornare invece la sezione ApplicationContentUriRules del manifesto dell'app. Per altre informazioni, vedere la sezione Osservazioni.

Identifica la proprietà di dipendenza AllowedScriptNotifyUris .

AllowFocusOnInteraction

Ottiene o imposta un valore che indica se l'elemento ottiene automaticamente lo stato attivo quando l'utente interagisce con esso.

(Ereditato da FrameworkElement)
AllowFocusWhenDisabled

Ottiene o imposta un valore che indica se un controllo disabilitato può ricevere lo stato attivo.

(Ereditato da FrameworkElement)
AnyScriptNotifyUri

Nota

AnyScriptNotifyUri non è supportato nelle app compilate per Windows 8.1. Aggiornare invece la sezione ApplicationContentUriRules del manifesto dell'app. Per altre informazioni, vedere la sezione Osservazioni.

Ottiene un valore che è possibile usare per impostare la proprietà AllowedScriptNotifyUris per indicare che qualsiasi pagina può generare eventi ScriptNotify su questo WebView.

BaseUri

Ottiene un URI (Uniform Resource Identifier) che rappresenta l'URI (Uniform Resource Identifier) di base per un oggetto costruito da XAML in fase di caricamento XAML. Questa proprietà è utile per la risoluzione URI (Uniform Resource Identifier) in fase di esecuzione.

(Ereditato da FrameworkElement)
CacheMode

Ottiene o imposta un valore che indica che il contenuto sottoposto a rendering deve essere memorizzato nella cache come bitmap composita, quando possibile.

(Ereditato da UIElement)
CanBeScrollAnchor

Ottiene o imposta un valore che indica se UIElement può essere un candidato per l'ancoraggio dello scorrimento.

(Ereditato da UIElement)
CanDrag

Ottiene o imposta un valore che indica se l'elemento può essere trascinato come dati in un'operazione di trascinamento della selezione.

(Ereditato da UIElement)
CanGoBack

Ottiene un valore che indica se nella cronologia di navigazione all'indietro è presente almeno una pagina.

CanGoBackProperty

Identifica la proprietà di dipendenza CanGoBack .

CanGoForward

Ottiene un valore che indica se nella cronologia di spostamento in avanti è presente almeno una pagina.

CanGoForwardProperty

Identifica la proprietà di dipendenza CanGoForward .

CenterPoint

Ottiene o imposta il punto centrale dell'elemento, ovvero il punto su cui si verifica la rotazione o la scalabilità. Influisce sulla posizione di rendering dell'elemento.

(Ereditato da UIElement)
Clip

Ottiene o imposta l'oggetto RectangleGeometry utilizzato per definire la struttura del contenuto di un oggetto UIElement.

(Ereditato da UIElement)
CompositeMode

Ottiene o imposta una proprietà che dichiara modalità di composizione e fusione alternative per l'elemento nel layout e nella finestra padre. Questo è rilevante per gli elementi coinvolti in un'interfaccia utente XAML/Microsoft DirectX mista.

(Ereditato da UIElement)
ContainsFullScreenElement

Ottiene un valore che indica se WebView contiene un elemento che supporta lo schermo intero.

ContainsFullScreenElementProperty

Identifica la proprietà di dipendenza ContainsFullScreenElement .

ContextFlyout

Ottiene o imposta il riquadro a comparsa associato a questo elemento.

(Ereditato da UIElement)
DataContext

Ottiene o imposta il contesto dati per un FrameworkElement. Un uso comune di un contesto dati è quando un FrameworkElement usa l'estensione di markup {Binding} e partecipa al data binding.

(Ereditato da FrameworkElement)
DataTransferPackage

Nota

DataTransferPackage può essere modificato o non disponibile per le versioni dopo Windows 8.1. Usare invece CaptureSelectedContentToDataPackageAsync.

Ottiene un Oggetto DataPackage degli Appunti come passato a WebView.

DataTransferPackageProperty

Nota

DataTransferPackageProperty può essere modificato o non disponibile per le versioni dopo Windows 8.1. Usare invece CaptureSelectedContentToDataPackageAsync.

Identifica la proprietà di dipendenza DataTransferPackage .

DefaultBackgroundColor

Ottiene o imposta il colore da usare come sfondo WebView quando il contenuto HTML non specifica un colore.

DefaultBackgroundColorProperty

Identifica la proprietà di dipendenza DefaultBackgroundColor .

DefaultExecutionMode

Ottiene il comportamento di threading predefinito delle istanze di WebView nell'app corrente.

DeferredPermissionRequests

Ottiene una raccolta di richieste di autorizzazione in attesa di essere concesse o negate.

DesiredSize

Ottiene le dimensioni calcolate da uiElement durante il passaggio della misura del processo di layout.

(Ereditato da UIElement)
Dispatcher

Ottiene coreDispatcher a cui è associato questo oggetto. CoreDispatcher rappresenta una funzionalità che può accedere a DependencyObject nel thread dell'interfaccia utente anche se il codice viene avviato da un thread non dell'interfaccia utente.

(Ereditato da DependencyObject)
DocumentTitle

Ottiene il titolo della pagina attualmente visualizzata in WebView.

DocumentTitleProperty

Identifica la proprietà di dipendenza DocumentTitle .

ExecutionMode

Ottiene un valore che indica se il contenuto di WebView ospita il contenuto nel thread dell'interfaccia utente o in un thread non dell'interfaccia utente.

ExitDisplayModeOnAccessKeyInvoked

Ottiene o imposta un valore che specifica se la visualizzazione del tasto di scelta viene chiusa quando viene richiamata una chiave di scelta.

(Ereditato da UIElement)
FlowDirection

Ottiene o imposta la direzione in cui il testo e altri elementi dell'interfaccia utente scorrono all'interno di qualsiasi elemento padre che controlla il layout. Questa proprietà può essere impostata su LeftToRight o RightToLeft. L'impostazione di FlowDirection su RightToLeft su qualsiasi elemento imposta l'allineamento a destra, l'ordine di lettura da destra a sinistra e il layout del controllo da destra a sinistra.

(Ereditato da FrameworkElement)
FocusVisualMargin

Ottiene o imposta il margine esterno dell'oggetto visivo dello stato attivo per un frameworkElement.

(Ereditato da FrameworkElement)
FocusVisualPrimaryBrush

Ottiene o imposta il pennello utilizzato per disegnare il bordo esterno di un oggetto visivo dello stato attivo o Reveal di un HighVisibilityoggetto visivo FrameworkElement.

(Ereditato da FrameworkElement)
FocusVisualPrimaryThickness

Ottiene o imposta lo spessore del bordo esterno di un HighVisibility oggetto visivo o Reveal dello stato attivo per un oggetto FrameworkElement.

(Ereditato da FrameworkElement)
FocusVisualSecondaryBrush

Ottiene o imposta il pennello utilizzato per disegnare il bordo interno di un oggetto visivo o Reveal dello stato attivo per un HighVisibilityoggetto FrameworkElement.

(Ereditato da FrameworkElement)
FocusVisualSecondaryThickness

Ottiene o imposta lo spessore del bordo interno di un HighVisibility oggetto visivo o Reveal dello stato attivo per un oggetto FrameworkElement.

(Ereditato da FrameworkElement)
Height

Ottiene o imposta l'altezza suggerita di un FrameworkElement.

(Ereditato da FrameworkElement)
HighContrastAdjustment

Ottiene o imposta un valore che indica se il framework regola automaticamente le proprietà visive dell'elemento quando sono abilitati i temi a contrasto elevato.

(Ereditato da UIElement)
HorizontalAlignment

Ottiene o imposta le caratteristiche di allineamento orizzontale applicate a un FrameworkElement quando è composto in un elemento padre di layout, ad esempio un pannello o un controllo elementi.

(Ereditato da FrameworkElement)
IsAccessKeyScope

Ottiene o imposta un valore che indica se un elemento definisce il proprio ambito della chiave di accesso.

(Ereditato da UIElement)
IsDoubleTapEnabled

Ottiene o imposta un valore che determina se l'evento DoubleTapped può avere origine da tale elemento.

(Ereditato da UIElement)
IsHitTestVisible

Ottiene o imposta un valore che indica se l'area contenuta di questo UIElement può restituire valori true per l'hit testing.

(Ereditato da UIElement)
IsHoldingEnabled

Ottiene o imposta un valore che determina se l'evento Holding può avere origine da tale elemento.

(Ereditato da UIElement)
IsLoaded

Ottiene un valore che indica se l'elemento è stato aggiunto all'albero degli elementi ed è pronto per l'interazione.

(Ereditato da FrameworkElement)
IsRightTapEnabled

Ottiene o imposta un valore che determina se l'evento RightTapped può avere origine da tale elemento.

(Ereditato da UIElement)
IsTapEnabled

Ottiene o imposta un valore che determina se l'evento Tapped può avere origine da tale elemento.

(Ereditato da UIElement)
KeyboardAcceleratorPlacementMode

Ottiene o imposta un valore che indica se la descrizione comando del controllo visualizza la combinazione di tasti per il tasto di scelta rapida associato.

(Ereditato da UIElement)
KeyboardAcceleratorPlacementTarget

Ottiene o imposta un valore che indica la descrizione comando del controllo che visualizza la combinazione di tasti di scelta rapida.

(Ereditato da UIElement)
KeyboardAccelerators

Ottiene la raccolta di combinazioni di tasti che richiamano un'azione utilizzando la tastiera.

Gli acceleratori vengono in genere assegnati a pulsanti o voci di menu.

Esempio di menu che mostra gli acceleratori di tastiera per varie voci di menu
Esempio di menu che mostra gli acceleratori di tastiera per varie voci di menu

(Ereditato da UIElement)
KeyTipHorizontalOffset

Ottiene o imposta un valore che indica l'estrema sinistra o destra in cui viene posizionato il suggerimento per i tasti rispetto a UIElement.

(Ereditato da UIElement)
KeyTipPlacementMode

Ottiene o imposta un valore che indica dove viene inserito il tasto di scelta Suggerimento chiave in relazione al limite dell'oggetto UIElement.

(Ereditato da UIElement)
KeyTipTarget

Ottiene o imposta un valore che indica l'elemento di destinazione del suggerimento per il tasto di scelta.

(Ereditato da UIElement)
KeyTipVerticalOffset

Ottiene o imposta un valore che indica la distanza verso l'alto o il basso del suggerimento per i tasti rispetto all'elemento dell'interfaccia utente.

(Ereditato da UIElement)
Language

Ottiene o imposta informazioni sul linguaggio di localizzazione/globalizzazione applicabili a un FrameworkElement e anche a tutti gli elementi figlio di FrameworkElement corrente nella rappresentazione dell'oggetto e nell'interfaccia utente.

(Ereditato da FrameworkElement)
Lights

Ottiene la raccolta di oggetti XamlLight associati a questo elemento.

(Ereditato da UIElement)
ManipulationMode

Ottiene o imposta il valore ManipulationModes utilizzato per il comportamento uiElement e l'interazione con i movimenti. L'impostazione di questo valore consente di gestire gli eventi di manipolazione da questo elemento nel codice dell'app.

(Ereditato da UIElement)
Margin

Ottiene o imposta il margine esterno di un FrameworkElement.

(Ereditato da FrameworkElement)
MaxHeight

Ottiene o imposta il vincolo di altezza massima di un oggetto FrameworkElement.

(Ereditato da FrameworkElement)
MaxWidth

Ottiene o imposta il vincolo di larghezza massima di un oggetto FrameworkElement.

(Ereditato da FrameworkElement)
MinHeight

Ottiene o imposta il vincolo di altezza minima di un frameworkElement.

(Ereditato da FrameworkElement)
MinWidth

Ottiene o imposta il vincolo di larghezza minima di un frameworkElement.

(Ereditato da FrameworkElement)
Name

Ottiene o imposta il nome di identificazione dell'oggetto. Quando un processore XAML crea l'albero degli oggetti dal markup XAML, il codice di runtime può fare riferimento all'oggetto dichiarato da XAML con questo nome.

(Ereditato da FrameworkElement)
Opacity

Ottiene o imposta il grado di opacità dell'oggetto.

(Ereditato da UIElement)
OpacityTransition

Ottiene o imposta scalarTransition che anima le modifiche apportate alla proprietà Opacity.

(Ereditato da UIElement)
Parent

Ottiene l'oggetto padre di questo FrameworkElement nell'albero degli oggetti.

(Ereditato da FrameworkElement)
PointerCaptures

Ottiene il set di tutti i puntatori acquisiti, rappresentati come valori puntatore .

(Ereditato da UIElement)
Projection

Ottiene o imposta la proiezione prospettica (effetto 3D) da applicare durante il rendering di questo elemento.

(Ereditato da UIElement)
RenderSize

Ottiene la dimensione di rendering finale di un oggetto UIElement. L'utilizzo non è consigliato, vedere La sezione Osservazioni.

(Ereditato da UIElement)
RenderTransform

Ottiene o imposta le informazioni di trasformazione che influiscono sulla posizione di rendering di un oggetto UIElement.

(Ereditato da UIElement)
RenderTransformOrigin

Ottiene o imposta il punto di origine di qualsiasi possibile trasformazione di rendering dichiarata da RenderTransform, rispetto ai limiti dell'oggetto UIElement.

(Ereditato da UIElement)
RequestedTheme

Ottiene o imposta il tema dell'interfaccia utente utilizzato da UIElement (e i relativi elementi figlio) per la determinazione delle risorse. Il tema dell'interfaccia utente specificato con RequestedTheme può eseguire l'override di RequestedTheme a livello di app.

(Ereditato da FrameworkElement)
Resources

Ottiene il dizionario risorse definito localmente. In XAML puoi stabilire elementi di risorsa come elementi oggetto figlio di un frameworkElement.Resources elemento di proprietà tramite la sintassi della raccolta implicita XAML.

(Ereditato da FrameworkElement)
Rotation

Ottiene o imposta l'angolo di rotazione in senso orario, espresso in gradi. Ruota rispetto a RotationAxis e CenterPoint. Influisce sulla posizione di rendering dell'elemento.

(Ereditato da UIElement)
RotationAxis

Ottiene o imposta l'asse in cui ruotare l'elemento.

(Ereditato da UIElement)
RotationTransition

Ottiene o imposta scalarTransition che anima le modifiche apportate alla proprietà Rotation.

(Ereditato da UIElement)
Scale

Ottiene o imposta la scala dell'elemento. Scala rispetto a CenterPoint dell'elemento. Influisce sulla posizione di rendering dell'elemento.

(Ereditato da UIElement)
ScaleTransition

Ottiene o imposta Vector3Transition che anima le modifiche apportate alla proprietà Scale.

(Ereditato da UIElement)
Settings

Ottiene un oggetto WebViewSettings che contiene proprietà per abilitare o disabilitare le funzionalità di WebView .

Shadow

Ottiene o imposta l'effetto ombreggiatura eseguito dall'elemento .

(Ereditato da UIElement)
Source

Ottiene o imposta l'origine URI (Uniform Resource Identifier) del contenuto HTML da visualizzare nel controllo WebView .

SourceProperty

Identifica la proprietà Di dipendenza di origine .

Style

Ottiene o imposta uno stile di istanza applicato per questo oggetto durante il layout e il rendering.

(Ereditato da FrameworkElement)
TabFocusNavigation

Ottiene o imposta un valore che modifica il funzionamento di tabbing e TabIndex per questo controllo.

(Ereditato da UIElement)
Tag

Ottiene o imposta un valore arbitrario dell'oggetto che può essere utilizzato per archiviare informazioni personalizzate su questo oggetto.

(Ereditato da FrameworkElement)
Transform3D

Ottiene o imposta l'effetto di trasformazione 3D da applicare durante il rendering di questo elemento.

(Ereditato da UIElement)
TransformMatrix

Ottiene o imposta la matrice di trasformazione da applicare all'elemento .

(Ereditato da UIElement)
Transitions

Ottiene o imposta la raccolta di elementi dello stile Di transizione che si applicano a un oggetto UIElement.

(Ereditato da UIElement)
Translation

Ottiene o imposta la posizione di rendering x, y e z dell'elemento.

(Ereditato da UIElement)
TranslationTransition

Ottiene o imposta Vector3Transition che anima le modifiche apportate alla proprietà Translation.

(Ereditato da UIElement)
Triggers

Ottiene la raccolta di trigger per le animazioni definite per un frameworkElement. Non comunemente usato. Vedere la sezione Osservazioni.

(Ereditato da FrameworkElement)
UIContext

Ottiene l'identificatore di contesto per l'elemento .

(Ereditato da UIElement)
UseLayoutRounding

Ottiene o imposta un valore che determina se il rendering per l'oggetto e il relativo sottoalbero visivo devono utilizzare il comportamento di arrotondamento che allinea il rendering a interi pixel.

(Ereditato da UIElement)
VerticalAlignment

Ottiene o imposta le caratteristiche di allineamento verticale applicate a un FrameworkElement quando è composto in un oggetto padre, ad esempio un pannello o un controllo elementi.

(Ereditato da FrameworkElement)
Visibility

Ottiene o imposta la visibilità di un oggetto UIElement. Il rendering di un oggetto UIElement non visibile non viene eseguito e non comunica le dimensioni desiderate al layout.

(Ereditato da UIElement)
Width

Ottiene o imposta la larghezza di un oggetto FrameworkElement.

(Ereditato da FrameworkElement)
XamlRoot

Ottiene o imposta l'oggetto XamlRoot in cui viene visualizzato questo elemento.

(Ereditato da UIElement)
XYFocusDown

Ottiene o imposta l'oggetto che ottiene lo stato attivo quando un utente preme il pad direzionale (D-pad).

XYFocusDownNavigationStrategy

Ottiene o imposta un valore che specifica la strategia utilizzata per determinare l'elemento di destinazione di uno spostamento verso il basso.

(Ereditato da UIElement)
XYFocusDownProperty

Identifica la proprietà di dipendenza XYFocusDown .

XYFocusKeyboardNavigation

Ottiene o imposta un valore che abilita o disabilita lo spostamento usando le frecce direzionali della tastiera.

(Ereditato da UIElement)
XYFocusLeft

Ottiene o imposta l'oggetto che ottiene lo stato attivo quando un utente preme il pad direzionale (D-pad) sinistro.

XYFocusLeftNavigationStrategy

Ottiene o imposta un valore che specifica la strategia utilizzata per determinare l'elemento di destinazione di uno spostamento a sinistra.

(Ereditato da UIElement)
XYFocusLeftProperty

Identifica la proprietà di dipendenza XYFocusLeft .

XYFocusRight

Ottiene o imposta l'oggetto che ottiene lo stato attivo quando un utente preme il riquadro direzionale (D-pad) a destra.

XYFocusRightNavigationStrategy

Ottiene o imposta un valore che specifica la strategia utilizzata per determinare l'elemento di destinazione di uno spostamento a destra.

(Ereditato da UIElement)
XYFocusRightProperty

Identifica la proprietà di dipendenza XYFocusRight .

XYFocusUp

Ottiene o imposta l'oggetto che ottiene lo stato attivo quando un utente preme il riquadro direzionale (D-pad) verso l'alto.

XYFocusUpNavigationStrategy

Ottiene o imposta un valore che specifica la strategia utilizzata per determinare l'elemento di destinazione di uno spostamento verso l'alto.

(Ereditato da UIElement)
XYFocusUpProperty

Identifica la proprietà di dipendenza XYFocusUp .

Metodi

AddHandler(RoutedEvent, Object, Boolean)

Aggiunge un gestore eventi indirizzati per un evento indirizzato specifico, aggiungendo il gestore alla raccolta di gestori nell'elemento corrente. Specificare handledEventsToo come true per fare in modo che il gestore fornito venga richiamato anche se l'evento viene gestito altrove.

(Ereditato da UIElement)
AddWebAllowedObject(String, Object)

Aggiunge un oggetto Windows Runtime nativo come parametro globale al documento di primo livello all'interno di un WebView.

Arrange(Rect)

Posiziona gli oggetti figlio e determina una dimensione per un OGGETTO UIElement. Gli oggetti padre che implementano il layout personalizzato per gli elementi figlio devono chiamare questo metodo dalle implementazioni di override del layout per formare un aggiornamento del layout ricorsivo.

(Ereditato da UIElement)
ArrangeOverride(Size)

Fornisce il comportamento per il passaggio "Disponi" del layout. Le classi possono eseguire l'override di questo metodo per definire il proprio comportamento di passaggio "Arrange".

(Ereditato da FrameworkElement)
BuildLocalStreamUri(String, String)

Crea un URI che è possibile passare a NavigateToLocalStreamUri.

CancelDirectManipulations()

Annulla l'elaborazione continua della manipolazione diretta (panoramica/zoom definita dal sistema) su qualsiasi elemento padre scrollViewer che contiene l'oggetto UIElement corrente.

(Ereditato da UIElement)
CapturePointer(Pointer)

Imposta l'acquisizione del puntatore su un oggetto UIElement. Dopo l'acquisizione, solo l'elemento con acquisizione genera eventi correlati al puntatore.

(Ereditato da UIElement)
CapturePreviewToStreamAsync(IRandomAccessStream)

Crea un'immagine del contenuto corrente di WebView e la scrive nel flusso specificato.

CaptureSelectedContentToDataPackageAsync()

Ottiene in modo asincrono un pacchetto di dati che contiene il contenuto selezionato all'interno di WebView.

ClearTemporaryWebDataAsync()

Cancella i dati della cache e indexedDB di WebView.

ClearValue(DependencyProperty)

Cancella il valore locale di una proprietà di dipendenza.

(Ereditato da DependencyObject)
DeferredPermissionRequestById(UInt32)

Restituisce la richiesta di autorizzazione posticipata con l'ID specificato.

FindName(String)

Recupera un oggetto con il nome dell'identificatore specificato.

(Ereditato da FrameworkElement)
FindSubElementsForTouchTargeting(Point, Rect)

Consente a una sottoclasse UIElement di esporre gli elementi figlio che consentono di risolvere la destinazione tocco.

(Ereditato da UIElement)
Focus(FocusState)

Imposta lo stato attivo di input su WebView.

GetAnimationBaseValue(DependencyProperty)

Restituisce qualsiasi valore di base stabilito per una proprietà di dipendenza, che si applica nei casi in cui un'animazione non è attiva.

(Ereditato da DependencyObject)
GetBindingExpression(DependencyProperty)

Restituisce l'oggetto BindingExpression che rappresenta l'associazione nella proprietà specificata.

(Ereditato da FrameworkElement)
GetChildrenInTabFocusOrder()

Consente a una sottoclasse UIElement di esporre gli elementi figlio che prendono parte allo stato attivo tabulazione.

(Ereditato da UIElement)
GetValue(DependencyProperty)

Restituisce il valore effettivo corrente di una proprietà di dipendenza da dependencyObject.

(Ereditato da DependencyObject)
GoBack()

Sposta WebView nella pagina precedente nella cronologia di spostamento.

GoForward()

Sposta WebView nella pagina successiva nella cronologia di spostamento.

GoToElementStateCore(String, Boolean)

Se implementato in una classe derivata, abilita la costruzione per stato di una struttura ad albero visuale per un modello di controllo nel codice, anziché caricando XAML per tutti gli stati all'avvio del controllo.

(Ereditato da FrameworkElement)
InvalidateArrange()

Invalida lo stato di disposizione (layout) per un UIElement. Dopo l'invalidazione, uiElement avrà aggiornato il layout, che si verificherà in modo asincrono.

(Ereditato da UIElement)
InvalidateMeasure()

Invalida lo stato di misurazione (layout) per un OGGETTO UIElement.

(Ereditato da UIElement)
InvalidateViewport()

Invalida lo stato del riquadro di visualizzazione per un UIElement utilizzato per calcolare il viewport effettivo.

(Ereditato da FrameworkElement)
InvokeScript(String, String[])

Nota

InvokeScript può essere modificato o non disponibile per le versioni dopo Windows 8.1. Usare invece InvokeScriptAsync.

Esegue la funzione di script specificata dal codice HTML attualmente caricato, con argomenti specifici.

InvokeScriptAsync(String, IIterable<String>)

Esegue la funzione di script specificata dal codice HTML attualmente caricato, con argomenti specifici, come azione asincrona.

Measure(Size)

Aggiornamenti desiredSize di un oggetto UIElement. In genere, gli oggetti che implementano il layout personalizzato per i relativi elementi figlio di layout chiamano questo metodo dalle proprie implementazioni di MeasureOverride per formare un aggiornamento del layout ricorsivo.

(Ereditato da UIElement)
MeasureOverride(Size)

Fornisce il comportamento per il passaggio "Misura" del ciclo di layout. Le classi possono eseguire l'override di questo metodo per definire il proprio comportamento di passaggio "Measure".

(Ereditato da FrameworkElement)
Navigate(Uri)

Carica il contenuto HTML nell'URI (Uniform Resource Identifier) specificato.

NavigateToLocalStreamUri(Uri, IUriToStreamResolver)

Carica contenuto Web locale nell'URI specificato usando un IUriToStreamResolver.

NavigateToString(String)

Carica il contenuto HTML specificato come nuovo documento.

NavigateWithHttpRequestMessage(HttpRequestMessage)

Sposta WebView su un URI con una richiesta POST e intestazioni HTTP.

OnApplyTemplate()

Richiamato ogni volta che il codice dell'applicazione o i processi interni ,ad esempio un passaggio di layout di ricompilazione, chiama ApplyTemplate. In termini più semplici, questo significa che il metodo viene chiamato subito prima che venga visualizzato un elemento dell'interfaccia utente nella tua app. Eseguire l'override di questo metodo per influenzare la logica post-modello predefinita di una classe.

(Ereditato da FrameworkElement)
OnBringIntoViewRequested(BringIntoViewRequestedEventArgs)

Chiamato prima che si verifichi l'evento BringIntoViewRequested .

(Ereditato da UIElement)
OnCreateAutomationPeer()

Se implementato in una classe derivata, restituisce implementazioni AutomationPeer specifiche della classe per l'infrastruttura di Microsoft Automazione interfaccia utente.

(Ereditato da UIElement)
OnDisconnectVisualChildren()

Eseguire l'override di questo metodo per implementare il comportamento del layout e della logica quando gli elementi vengono rimossi da una proprietà figlio o contenuto specifico della classe.

(Ereditato da UIElement)
OnKeyboardAcceleratorInvoked(KeyboardAcceleratorInvokedEventArgs)

Chiamato quando un tasto di scelta rapida (o un tasto di scelta rapida) viene elaborato nell'app. Eseguire l'override di questo metodo per gestire la risposta dell'app quando viene richiamato un tasto di scelta rapida.

(Ereditato da UIElement)
OnProcessKeyboardAccelerators(ProcessKeyboardAcceleratorEventArgs)

Chiamato subito prima dell'elaborazione di un tasto di scelta rapida (o dell'acceleratore) nell'app. Richiamato ogni volta che il codice dell'applicazione o i processi interni chiamano ProcessKeyboardAccelerators. Eseguire l'override di questo metodo per influenzare la gestione dell'acceleratore predefinita.

(Ereditato da UIElement)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Definisce una proprietà che può essere animata.

(Ereditato da UIElement)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

In caso di override in una classe derivata, definisce una proprietà che può essere animata.

(Ereditato da UIElement)
ReadLocalValue(DependencyProperty)

Restituisce il valore locale di una proprietà di dipendenza, se è impostato un valore locale.

(Ereditato da DependencyObject)
Refresh()

Ricarica il contenuto corrente in WebView.

RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una funzione di notifica per l'ascolto delle modifiche apportate a una dipendenza specifica in questa istanza di DependencyObject .

(Ereditato da DependencyObject)
ReleasePointerCapture(Pointer)

Rilascia le acquisizioni del puntatore per l'acquisizione di un puntatore specifico da questo UIElement.

(Ereditato da UIElement)
ReleasePointerCaptures()

Rilascia tutte le acquisizioni del puntatore mantenute da questo elemento.

(Ereditato da UIElement)
RemoveHandler(RoutedEvent, Object)

Rimuove il gestore eventi indirizzato specificato da questo UIElement. In genere il gestore in questione è stato aggiunto da AddHandler.

(Ereditato da UIElement)
SetBinding(DependencyProperty, BindingBase)

Collega un'associazione a un FrameworkElement usando l'oggetto binding fornito.

(Ereditato da FrameworkElement)
SetValue(DependencyProperty, Object)

Imposta il valore locale di una proprietà di dipendenza su dependencyObject.

(Ereditato da DependencyObject)
StartAnimation(ICompositionAnimationBase)

Avvia l'animazione specificata sull'elemento .

(Ereditato da UIElement)
StartBringIntoView()

Avvia una richiesta al framework XAML per visualizzare l'elemento all'interno di tutte le aree scorrevoli in cui è contenuto.

(Ereditato da UIElement)
StartBringIntoView(BringIntoViewOptions)

Avvia una richiesta al framework XAML per visualizzare l'elemento usando le opzioni specificate.

(Ereditato da UIElement)
StartDragAsync(PointerPoint)

Inizia un’operazione di trascinamento della selezione.

(Ereditato da UIElement)
Stop()

Arresta lo spostamento o il download di WebView corrente.

StopAnimation(ICompositionAnimationBase)

Arresta l'animazione specificata sull'elemento .

(Ereditato da UIElement)
TransformToVisual(UIElement)

Restituisce un oggetto transform che può essere utilizzato per trasformare le coordinate da UIElement all'oggetto specificato.

(Ereditato da UIElement)
TryInvokeKeyboardAccelerator(ProcessKeyboardAcceleratorEventArgs)

Tenta di richiamare una scelta rapida da tastiera (o un tasto di scelta rapida) eseguendo una ricerca nell'intera struttura ad albero visuale di UIElement per individuare il collegamento.

(Ereditato da UIElement)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Annulla una notifica di modifica registrata in precedenza chiamando RegisterPropertyChangedCallback.

(Ereditato da DependencyObject)
UpdateLayout()

Assicura che tutte le posizioni degli oggetti figlio di un UIElement vengano aggiornate correttamente per il layout.

(Ereditato da UIElement)

Eventi

AccessKeyDisplayDismissed

Si verifica quando i tasti di scelta non devono più essere visualizzati.

(Ereditato da UIElement)
AccessKeyDisplayRequested

Si verifica quando l'utente richiede la visualizzazione delle chiavi di accesso.

(Ereditato da UIElement)
AccessKeyInvoked

Si verifica quando un utente completa una sequenza di tasti di scelta.

(Ereditato da UIElement)
ActualThemeChanged

Si verifica quando il valore della proprietà ActualTheme è stato modificato.

(Ereditato da FrameworkElement)
BringIntoViewRequested

Si verifica quando StartBringIntoView viene chiamato su questo elemento o su uno dei relativi discendenti.

(Ereditato da UIElement)
CharacterReceived

Si verifica quando un singolo carattere composto viene ricevuto dalla coda di input.

(Ereditato da UIElement)
ContainsFullScreenElementChanged

Si verifica quando lo stato di WebView attualmente contiene un elemento a schermo intero o meno.

ContentLoading

Si verifica quando WebView ha avviato il caricamento di nuovo contenuto.

ContextCanceled

Si verifica quando un movimento di input del contesto continua in un movimento di manipolazione, per notificare all'elemento che il riquadro a comparsa del contesto non deve essere aperto.

(Ereditato da UIElement)
ContextRequested

Si verifica quando l'utente ha completato un movimento di input del contesto, ad esempio un clic con il pulsante destro del mouse.

(Ereditato da UIElement)
DataContextChanged

Si verifica quando viene modificato il valore della proprietà FrameworkElement.DataContext .

(Ereditato da FrameworkElement)
DOMContentLoaded

Si verifica al termine dell'analisi del contenuto HTML corrente.

DoubleTapped

Si verifica quando si verifica un'interazione DoubleTap non gestita sull'area hit test di questo elemento.

(Ereditato da UIElement)
DragEnter

Si verifica quando il sistema di input segnala un evento di trascinamento sottostante con questo elemento come destinazione.

(Ereditato da UIElement)
DragLeave

Si verifica quando il sistema di input segnala un evento di trascinamento sottostante con questo elemento come origine.

(Ereditato da UIElement)
DragOver

Si verifica quando il sistema di input segnala un evento di trascinamento sottostante per il quale l'elemento rappresenta la destinazione del rilascio potenziale.

(Ereditato da UIElement)
DragStarting

Si verifica quando viene avviata un'operazione di trascinamento.

(Ereditato da UIElement)
Drop

Si verifica quando il sistema di input segnala un evento di rilascio sottostante con questo elemento come destinazione del rilascio.

(Ereditato da UIElement)
DropCompleted

Si verifica quando viene terminata un'operazione di trascinamento della selezione con questo elemento al termine dell'origine.

(Ereditato da UIElement)
EffectiveViewportChanged

Si verifica quando cambia il viewport effettivo di FrameworkElement.

(Ereditato da FrameworkElement)
FrameContentLoading

Si verifica quando un frame in WebView ha avviato il caricamento di nuovo contenuto.

FrameDOMContentLoaded

Si verifica quando un frame in WebView ha completato l'analisi del contenuto HTML corrente.

FrameNavigationCompleted

Si verifica quando un frame in WebView ha completato il caricamento del contenuto.

FrameNavigationStarting

Si verifica prima che un frame in WebView passi al nuovo contenuto.

GettingFocus

Si verifica prima che un UIElement riceva lo stato attivo. Questo evento viene generato in modo sincrono per assicurarsi che lo stato attivo non venga spostato mentre l'evento è bubbling.

(Ereditato da UIElement)
GotFocus

Si verifica quando un oggetto UIElement riceve lo stato attivo. Questo evento viene generato in modo asincrono, in modo che lo stato attivo possa spostarsi nuovamente prima del completamento del bubbling.

(Ereditato da UIElement)
Holding

Si verifica quando si verifica un'interazione di blocco non gestita sull'area hit test di questo elemento.

(Ereditato da UIElement)
KeyDown

Si verifica quando viene premuto un tasto di tastiera mentre UIElement ha lo stato attivo.

(Ereditato da UIElement)
KeyUp

Si verifica quando viene rilasciato un tasto di tastiera mentre UIElement ha lo stato attivo.

(Ereditato da UIElement)
LayoutUpdated

Si verifica quando il layout della struttura ad albero visuale cambia, a causa della modifica del valore delle proprietà pertinenti al layout o di un'altra azione che aggiorna il layout.

(Ereditato da FrameworkElement)
LoadCompleted

Nota

LoadCompleted può essere modificato o non disponibile per le versioni dopo Windows 8.1. Usare invece NavigationCompleted.

Si verifica quando lo spostamento di primo livello viene completato e il contenuto viene caricato nel controllo WebView o quando si verifica un errore durante il caricamento.

Loaded

Si verifica quando un FrameworkElement è stato costruito e aggiunto all'albero degli oggetti ed è pronto per l'interazione.

(Ereditato da FrameworkElement)
Loading

Si verifica quando un FrameworkElement inizia a essere caricato.

(Ereditato da FrameworkElement)
LongRunningScriptDetected

Si verifica periodicamente mentre WebView esegue JavaScript, consentendo di arrestare lo script.

LosingFocus

Si verifica prima che un UIElement perda lo stato attivo. Questo evento viene generato in modo sincrono per assicurarsi che lo stato attivo non venga spostato mentre l'evento è bubbling.

(Ereditato da UIElement)
LostFocus

Si verifica quando un UIElement perde lo stato attivo. Questo evento viene generato in modo asincrono, in modo che lo stato attivo possa spostarsi nuovamente prima del completamento del bubbling.

(Ereditato da UIElement)
ManipulationCompleted

Si verifica al completamento di una manipolazione dell'oggetto UIElement .

(Ereditato da UIElement)
ManipulationDelta

Si verifica quando il dispositivo di input cambia posizione durante una manipolazione.

(Ereditato da UIElement)
ManipulationInertiaStarting

Si verifica quanto il dispositivo di input perde il contatto con l'oggetto UIElement durante una manipolazione e ha inizio l'inerzia.

(Ereditato da UIElement)
ManipulationStarted

Si verifica quando un dispositivo di input inizia una manipolazione sull'oggetto UIElement.

(Ereditato da UIElement)
ManipulationStarting

Si verifica quando il processore di manipolazione viene creato per la prima volta.

(Ereditato da UIElement)
NavigationCompleted

Si verifica quando WebView ha completato il caricamento del contenuto corrente o se lo spostamento non è riuscito.

NavigationFailed

Nota

NavigationFailed può essere modificato o non disponibile per le versioni dopo Windows 8.1. Usare invece NavigationCompleted.

Si verifica quando WebView non può completare il tentativo di spostamento.

NavigationStarting

Si verifica prima che WebView passi al nuovo contenuto.

NewWindowRequested

Si verifica quando un utente esegue un'azione in un WebView che causa l'apertura del contenuto in una nuova finestra.

NoFocusCandidateFound

Si verifica quando un utente tenta di spostare lo stato attivo (tramite tabulazione o frecce direzionali), ma lo stato attivo non si sposta perché non viene trovato alcun candidato per lo stato attivo nella direzione del movimento.

(Ereditato da UIElement)
PermissionRequested

Si verifica quando un'azione in un WebView richiede che venga concessa l'autorizzazione.

PointerCanceled

Si verifica quando un puntatore che ha effettuato un contatto perde anormalemente il contatto.

(Ereditato da UIElement)
PointerCaptureLost

Si verifica quando l'acquisizione del puntatore precedentemente mantenuta da questo elemento passa a un altro elemento o altrove.

(Ereditato da UIElement)
PointerEntered

Si verifica quando un puntatore entra nell'area di hit test di questo elemento.

(Ereditato da UIElement)
PointerExited

Si verifica quando un puntatore lascia l'area di hit test di questo elemento.

(Ereditato da UIElement)
PointerMoved

Si verifica quando un puntatore si sposta mentre il puntatore rimane all'interno dell'area di hit test di questo elemento.

(Ereditato da UIElement)
PointerPressed

Si verifica quando il dispositivo puntatore avvia un'azione Press all'interno di questo elemento.

(Ereditato da UIElement)
PointerReleased

Si verifica quando il dispositivo puntatore che ha avviato in precedenza un'azione Press viene rilasciato, mentre all'interno di questo elemento. Si noti che la fine di un'azione Press non è garantita l'attivazione di un evento PointerReleased; altri eventi possono essere attivati invece. Per altre info, vedi Osservazioni.

(Ereditato da UIElement)
PointerWheelChanged

Si verifica quando cambia il valore differenziale di una rotellina del puntatore.

(Ereditato da UIElement)
PreviewKeyDown

Si verifica quando viene premuto un tasto di tastiera mentre UIElement ha lo stato attivo.

(Ereditato da UIElement)
PreviewKeyUp

Si verifica quando viene rilasciato un tasto di tastiera mentre UIElement ha lo stato attivo.

(Ereditato da UIElement)
ProcessKeyboardAccelerators

Si verifica quando viene premuto un tasto di scelta rapida (o un tasto di scelta rapida ).

(Ereditato da UIElement)
RightTapped

Si verifica quando si verifica uno stimolo di input di tocco destro mentre il puntatore si trova sull'elemento.

(Ereditato da UIElement)
ScriptNotify

Si verifica quando il contenuto contenuto nel controllo WebView passa una stringa all'applicazione usando JavaScript.

SeparateProcessLost

Si verifica quando un controllo WebView viene eseguito con un valore ExecutionMode di SeparateProcess e il processo separato viene perso.

SizeChanged

Si verifica quando la proprietà ActualHeight o ActualWidth modifica il valore in un FrameworkElement.

(Ereditato da FrameworkElement)
Tapped

Si verifica quando si verifica un'interazione tocco non gestita sull'area hit test di questo elemento.

(Ereditato da UIElement)
Unloaded

Si verifica quando questo oggetto non è più connesso all'albero degli oggetti principale.

(Ereditato da FrameworkElement)
UnsafeContentWarningDisplaying

Si verifica quando WebView mostra una pagina di avviso per il contenuto segnalato come non sicuro da SmartScreen Filter.

UnsupportedUriSchemeIdentified

Si verifica quando viene eseguito un tentativo di passare a un URI (Uniform Resource Identifier) usando uno schema che WebView non supporta.

UnviewableContentIdentified

Si verifica quando WebView tenta di scaricare un file non supportato.

WebResourceRequested

Si verifica quando è stata effettuata una richiesta HTTP.

Si applica a

Vedi anche