WebView 類別

定義

提供在應用程式中裝載 HTML 內容的控制項。

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 .../>
繼承
Object Platform::Object IInspectable DependencyObject UIElement FrameworkElement WebView
屬性

Windows 需求

裝置系列
Windows 10 (已於 10.0.10240.0 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v1.0 引進)

範例

提示

如需詳細資訊、設計指引和程式碼範例,請參閱 Web 檢視

如果您已安裝 WinUI 2 資源庫 應用程式,請按一下這裡 開啟應用程式並查看 WebView 運作情形

下列程式碼範例示範如何將 WebView 巡覽至 名為 的 TextBoxAddress 中包含的 URI。

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

下列程式碼範例示範如何將本機 HTML 載入 WebView 控制項。

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

備註

使用 WebView 控制項在應用程式中裝載 Web 內容。 Surface Hub 或 Xbox 的應用程式必須使用此 WebView。

重要

針對傳統型應用程式,建議您使用 WebView2 控制項,這是適用于 UWP 的 Windows UI 程式庫 2 (WinUI 2) 的一部分。 WebView2 使用 Microsoft Edge (Chromium) 作為轉譯引擎,在應用程式中顯示 Web 內容。 如需詳細資訊,請參閱 Microsoft Edge WebView2 簡介開始使用 WinUI 2 中的 WebView2 (UWP) 應用程式,以及 WinUI API 參考中的 WebView2

重要

XAML Islands:XAML Islands應用程式中不支援此控制項。 如需替代方案,請參閱 XAML Islands - Web 檢視控制項

WebView 不是 Control 子類別,因此沒有控制項範本。 您可以設定各種屬性來控制 WebView 的某些視覺層面。 顯示區域受限於 WidthHeight 屬性。 若要轉譯、縮放、扭曲及旋轉 WebView,請使用 RenderTransform 屬性。 若要控制 WebView 的不透明度,請設定 Opacity 屬性。 若要指定在 HTML 內容未指定色彩時當成網頁背景使用的色彩,請設定 DefaultBackgroundColor 屬性。

您可以使用 DocumentTitle 屬性,取得目前顯示在 WebView 中的 HTML 檔案標題。

雖然 WebView 不是 Control 子類別,但它會收到鍵盤輸入焦點並參與 Tab 序列。 它提供 Focus 方法,以及 GotFocusLostFocus 事件,但是沒有 Tab 相關的屬性。 它在 Tab 順序中的位置,與在 XAML 文件順序中的位置一樣。 索引標籤序列包含 WebView 內容中可接收輸入焦點的所有元素。

如事件資料表中所述,WebView 不支援繼承自 UIElement的大部分使用者輸入事件,例如 KeyDownKeyUpPointerPressed。 常見的因應措施是搭配使用 InvokeScriptAsync 搭配 JavaScripteval 函式來使用 HTML 事件處理常式,並使用來自 HTML 事件處理常式的 window.external.notify ,以使用 WebView.ScriptNotify通知應用程式。

在針對 Windows 10 編譯的應用程式中,WebView 會使用 Microsoft Edge 轉譯引擎來顯示 HTML 內容。 在針對 Windows 8 或 Windows 8.1 編譯的應用程式中,WebView 會在檔案模式中使用 Internet Explorer 11。 它不支援任何 Microsoft ActiveX 控制項或外掛程式,例如 Microsoft Silverlight 或可攜式檔案格式 (PDF) 檔案。

WebView 提供數個適用于基本流覽的 API: GoBackGoForwardStopRefreshCanGoBackCanGoForward。 您可以使用這些元素為您的應用程式新增典型的網頁瀏覽功能。

若要設定 WebView 的初始內容,請在 XAML 中設定 Source 屬性。 XAML 剖析器會自動將字串轉換為 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"/>

Source屬性可以在程式碼中設定,但不要這麼做,您通常會使用其中一個Navigate方法來載入程式碼中的內容。

若要載入 Web 內容,請使用Navigate方法搭配使用HTTP 或 HTTPs配置的URI

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

若要使用 POST 要求和 HTTP 標頭流覽至統一資源識別項 (URI) ,請使用 NavigateWithHttpRequestMessage 方法。 此方法僅支援 HttpRequestMessage.Method 屬性值的 HttpMethod.PostHttpMethod.Get

若要從應用程式的LocalFolderTemporaryFolder資料存放區載入未壓縮和未加密的內容,請使用Navigate方法搭配使用ms-appdata 配置的URI。 此配置的 WebView 支援需要您將內容放在本機或暫存資料夾下的子資料夾中。 這可讓您流覽至統一資源識別項 (URI) ,例如 ms-appdata:///local/ folder檔案.html和 ms-appdata:///temp/ folder//檔案.html。 (若要載入壓縮或加密的檔案,請參閱 NavigateToLocalStreamUri。)

所有這些第一層子資料夾都是與其他第一層子資料夾中的內容隔離。 例如,您可以流覽至 ms-appdata:///temp/folder1/file.html,但此檔案中不能有 ms-appdata:///temp/folder2/file.html 的連結。 不過,您仍然可以使用ms-appx-web配置連結至應用程式套件中的 HTML 內容,以及使用HTTP 和 HTTPs統一資源識別項 (URI ) 配置來連結至 Web 內容。

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

若要從應用程式套件中載入內容,請使用 Navigate 方法搭配使用 ms-appx-web 配置Uri

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

您可以使用 NavigateToLocalStreamUri 方法,透過自訂解析器載入本機內容。 這適用於更進階的案例,例如,下載和快取 Web 內容以進行離線使用,或是解壓縮壓縮檔中的內容。

回應瀏覽事件

WebView 提供數個事件,可讓您用來回應流覽和內容載入狀態。 根 WebView 內容的發生順序如下:

webViewA.NavigationStarting += webViewA_NavigationStarting;

private void webViewA_NavigationStarting(object sender, WebViewNavigationStartingEventArgs args)
{
    // Cancel navigation if URL is not allowed. (Implemetation of IsAllowedUri not shown.)
    if (!IsAllowedUri(args.Uri))
        args.Cancel = true;
}
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();
    }
}
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();
    }
}

WebView 內容中每個 iframe 的類似事件會以相同順序發生:

回應潛在問題

您可以回應內容的潛在問題,例如長時間執行的腳本、WebView 無法載入的內容,以及不安全內容的警告。

指令碼正在執行時,您的應用程式看起來會像沒有回應。 當 WebView 執行 JavaScript 並提供中斷腳本的機會時, LongRunningScriptDetected 事件會定期發生。 若要判斷指令碼已執行多久的時間,請檢查 WebViewLongRunningScriptDetectedEventArgsExecutionTime 屬性。 若要停止指令碼,請將事件引數 StopPageScriptExecution屬性設定為 true。 除非在後續的 WebView 流覽期間重載已停止的腳本,否則不會再次執行已停止的腳本。

WebView 控制項無法裝載任意檔案類型。 嘗試載入 WebView 無法裝載的內容時,會發生 UnviewableContentIdentified 事件。 您可以處理此事件並通知使用者,或使用 Launcher 類別將檔案重新導向至外部瀏覽器或另一個應用程式。

同樣地,當 Web 內容中叫用不支援的統一資源識別項 (URI) 配置時,就會發生 UnsupportedUriSchemeIdentified 事件,例如 fbconnect:// 或 mailto://。 您可以處理此事件以提供自訂行為,而不是允許預設系統啟動器啟動統一資源識別項 (URI) 。

當 WebView 顯示 SmartScreen 篩選器回報為 unsafe 的內容警告頁面時,就會發生 UnsafeContentWarningDisplaying 事件。 如果使用者選擇繼續瀏覽,則後續的頁面瀏覽不會顯示警告,也不會引發事件。

處理 WebView 內容的特殊案例

您可以使用 ContainsFullScreenElement 屬性和 ContainsFullScreenElementChanged 事件,來偵測、回應、啟用網頁內容中的全螢幕體驗 (例如全螢幕影片播放)。 例如,您可以使用 ContainsFullScreenElementChanged 事件來調整 WebView 的大小以佔用整個應用程式檢視,或如下列範例所示,在需要全螢幕 Web 體驗時,將視窗化應用程式置於全螢幕模式中。

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

您可以使用 NewWindowRequested 事件來處理下列情況:託管的網頁內容要求顯示新視窗 (例如快顯視窗) 時。 您可以使用另一個 WebView 控制項來顯示所要求視窗的內容。

使用 PermissionRequested 事件,以啟用需要特殊功能的 Web 功能。 這些目前包含地理位置、IndexedDB 存放區,以及使用者音訊和視訊 (例如,從麥克風或網路攝影機)。 如果您的應用程式存取使用者位置或使用者媒體,則仍需要在應用程式資訊清單中宣告此功能。 例如,在 Package.appxmanifest 中,使用地理位置的應用程式最少需要下列功能宣告:

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

除了處理 PermissionRequested 事件的應用程式之外,使用者還必須核准要求位置或媒體功能之應用程式的標準系統對話方塊,以啟用這些功能。

以下範例示範應用程式如何從 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();
    }
}

如果您的 app 需要使用者輸入或其他非同步作業來回應權限要求,請使用 WebViewPermissionRequestDefer 方法來建立可稍後處理的 WebViewDeferredPermissionRequest。 請參閱 WebViewPermissionRequest.Defer

如果使用者必須安全地登出裝載于 WebView 的網站,或安全性很重要的其他情況下,請呼叫靜態方法 ClearTemporaryWebDataAsync ,以清除 WebView 會話中的所有本機快取內容。 這可以防止惡意使用者存取敏感性資料。

與 WebView 內容互動

您可以使用 InvokeScriptAsync 方法來叫用或插入腳本到 WebView 內容,以及 ScriptNotify 事件,以從 WebView 內容中取得資訊,以與 WebView 的內容互動。

若要在 WebView 內容內叫用 JavaScript,請使用 InvokeScriptAsync 方法。 叫用的指令碼可以只傳回字串值。

例如,如果名為 webViewA 的 WebView 內容包含採用 3 個參數的函 setDate 式,您可以像這樣叫用它。

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

您可以搭配使用 InvokeScriptAsync 與 JavaScript eval 函式,來將內容插入網頁中。

在這裡,XAML TextBox 的文字 () nameTextBox.Text 會寫入裝載于 的 HTML 頁面中 webViewA 的 div。

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

WebView 內容中的腳本可以使用 window.external.notify 搭配字串參數,將資訊傳回您的應用程式。 若要接收這些訊息,請處理 ScriptNotify 事件。

若要讓外部網頁在呼叫window.external.notify時引發ScriptNotify事件,您必須在應用程式資訊清單的ApplicationContentUriRules區段中包含頁面的統一資源識別項 (URI) 。 (您可以在 Microsoft Visual Studio 的 Package.appxmanifest designer.) Content URI 索引標籤上執行此動作。此清單中的 URI 必須使用 HTTPS,而且可能包含子域萬用字元 (例如,HTTPs://.microsoft.com) ,但不能包含網域萬用字元 (例如,HTTPs://.com 和 HTTPs://。) 。 資訊清單需求不適用於源自應用程式套件的內容、使用 ms-local-stream:// URI 的內容,或使用 NavigateToString 載入的內容。

存取 WebView 中的Windows 執行階段

從 Windows 10 開始,您可以使用AddWebAllowedObject方法,將原生類別的實例從 Windows 執行階段 元件插入至 WebView 的 JavaScript 內容。 這可讓您在 WebView 的 JavaScript 內容中完整存取該物件的原生方法、屬性和事件。 類別必須使用 AllowForWeb 屬性進行裝飾。

例如,此程式碼會將從 Windows 執行階段 元件匯入的 MyClass 實例插入至 WebView。

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

如需詳細資訊,請參閱 WebView.AddWebAllowedObject

此外,WebView 中受信任的 JavaScript 內容也可以直接存取 Windows RuntimeAPI。 這可為 WebView 中裝載的 Web 應用程式提供強大的原生功能。 若要啟用此功能,必須將信任內容的統一資源識別項 (URI) 新增至 Package.appxmanifest 中應用程式 ApplicationContentUriRules 中的 allowlist,WindowsRuntimeAccess 特別設定為 「all」。

這個範例示範應用程式資訊清單的一個區段。 在這裡,會將本機統一資源識別項 (URI) 授與Windows 執行階段的存取權。

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

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

網頁內容裝載的選項

從 Windows 10 開始,您可以使用WebViewSettings類型的WebView.Settings屬性 () 來控制是否已啟用 JavaScript 和 IndexedDB。 例如,如果您使用 WebView 來顯示嚴格靜態內容,您可能會想要停用 JavaScript 以獲得最佳效能。

擷取 WebView 內容

若要與其他應用程式共用 WebView 內容,請使用 CaptureSelectedContentToDataPackageAsync 方法,此方法會將選取的內容傳回為 DataPackage。 這是非同步方法,因此您必須使用延遲,防止 DataRequested 事件處理常式在非同步呼叫完成之前返回。

若要取得 WebView 目前內容的預覽影像,請使用 CapturePreviewToStreamAsync 方法。 這個方法會建立目前內容的映像,並將它寫入指定的資料流中。

執行模式

根據預設,WebView 內容會裝載于桌面裝置系列裝置上裝置上的 UI 執行緒上,並關閉所有其他裝置上的 UI 執行緒。 您可以使用 WebView.DefaultExecutionMode 靜態屬性,來查詢目前用戶端的預設執行緒行為。 必要時,您可以使用 WebView(WebViewExecutionMode) 建構函式來覆寫這個行為。

支援的 WebViewExecutionMode 值如下:

  • SameThread - WebView 內容裝載于 UI 執行緒上。
  • SeparateThread - WebView 內容裝載于 UI 執行緒以外的個別執行緒上。
  • SeparateProcess - (Windows 10 1803 版或更新版本) WebView 內容裝載于應用程式進程以外的個別進程上。 所有應用程式的 WebView 實例都會共用相同的個別進程,每個 WebView 實例沒有個別的進程。

在不同的進程中執行時,WebView 會區分兩種行為差異:

  • WebView 進程可能會終止。 您可以藉由接聽 SeparateProcessLost 事件來收到此通知。
  • WebView 程式可以非同步拒絕鍵盤焦點。 在此情況下,WebView.Focus 方法會傳回 true,然後立即 (但以非同步方式) ,焦點會離開 WebView。 (移動焦點的其他方式類似,例如 FocusManager.TryMoveFocus.) 您可以使用FocusManager.TryFocusAsync 或 FocusManager.TryMoveFocusAsync API 更明確地追蹤此動作。

此範例示範如何建立 WebView 控制項,該控制項會在與主應用程式不同的進程中執行,並在遺失個別進程時重新建立。

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

注意

在行動裝置上的 UI 執行緒上裝載內容時,可能會發生效能問題,因此當您變更 DefaultExecutionMode時,請務必在所有目標裝置上進行測試。

裝載 UI 執行緒外內容的 WebView 與需要手勢從 WebView 控制項傳播至父控制項的父控制項不相容,例如 FlipViewScrollViewer和其他相關控制項。 這些控制項將無法接收從執行緒外 WebView 起始的手勢。 此外,不直接支援列印關閉執行緒網頁內容;您應該改為使用 WebViewBrush 填滿來列印元素。

個別進程中 WebView 的焦點行為

無論是在應用程式進程或個別進程中執行,您都可以呼叫 WebView.Focus 方法,將焦點設定為 WebView。 這相當於 Control.Focus 和 Hyperlink.Focus 方法 (請注意,WebView 不會衍生自 Control) 。

同樣地,FocusManager類別上的數種方法可能會影響 WebView (或 Control 或 Hyperlink) :TryMoveFocusFindNextFocusableElement、FindLastFocusableElementGetFocusedElement 例如,TryMoveFocus 會將焦點移至 WebView,而 GetFocusedElement 會傳回具有焦點的 WebView。

最後,將焦點移至 WebView 或從 WebView 移出會引發焦點事件,同時在 WebView 本身和失去或接收焦點的專案上。 這些事件包括 LosingFocusLostFocusGettingFocusGotFocus。 例如,當焦點從 Control 移至 WebView 時,Control 會引發 LosingFocus 和 LostFocus 事件,而 WebView 則會引發 GettingFocus 和 GotFocus 事件。

當 WebView 在不同的進程中執行時,這些 API 的行為會稍微變更。 假設 WebView 可設定焦點,WebView.Focus 方法會傳回 true (成功) ,但焦點尚未實際移動。 如果呼叫 FocusManager.TryMoveFocus 方法而不是 WebView.Focus 方法,而且它會將 WebView 識別為下一個可設定焦點的專案,則也是如此。

行為的差異如下:

  • 除非非同步作業完成,否則 FocusManager.GetFocusedElement 不會傳回 WebView。
  • 失去焦點的控制項會同步接收其 LosingFocus 事件;不過,除非非同步作業完成,否則不會收到 LostFocus。
  • 同樣地,GettingFocus 事件會在 WebView 上同步發生;不過,除非非同步作業完成,否則不會引發 GotFocus 事件。

如果您改為呼叫 FocusManager.TryFocusAsync,則不會變更此變更。 不過,非同步方法可讓您判斷焦點變更是否成功。

在不同的進程中呼叫 WebView 以外的元素上呼叫 FocusManager.TryMoveFocusAsync 將會同步完成。

此範例示範如何將焦點移至下一個邏輯元素,但如果失敗,請將焦點還原至其初始位置。

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

使用警示

如果 WebView 中裝載的網頁使用 JavaScript 警示 函式,則不會顯示。 這是針對所有 WebView 版本所設計。

您可以攔截 警示 所顯示的資訊,並在主應用程式中使用它。 這是否可行取決於頁面的撰寫方式,以及您是否擁有其控制權。 有一個範例可用來示範執行這項操作的可能技術。 此範例是針對 Windows 8.1 和 Windows Phone 8.1 所撰寫,但也適用于使用 通用 Windows 平臺 (UWP) 的應用程式。 不過,這可能不適用於每個案例。

如何在通用 Windows 應用程式中的 WebView 中攔截 JavaScript 警示範例

舊版的注意事項

Windows 8.1

下列 WebView API 在 Windows 8.1中已被取代:

僅限在 Windows 上,您可以處理 UnsafeContentWarningDisplaying 事件。 當 WebView 顯示 SmartScreen 篩選器回報為不安全的內容警告頁面時,就會發生此事件。 如果使用者選擇繼續瀏覽,則後續的頁面瀏覽不會顯示警告,也不會引發事件。 此事件不會針對Windows Phone實作。

當您呼叫 InvokeScriptAsync 方法叫用 WebView 內的 JavaScript 時,不支援需要次要視窗的函式,例如 Alert

Windows Phone 8

在Windows 10之前,不會針對Windows Phone實作UnsafeContentWarningDisplaying事件。

Windows 8

這些備註僅適用于針對 Windows 8 編譯的應用程式,即使在Windows 8.1或更新版本上執行時也是如此。

在 Windows 8 中,WebView 具有其他 UI 區域的特性,例如控制項無法在 WebView 之上轉譯。 這個「空間問題」是因為視窗區域在內部處理的方式,特別是輸入事件的處理方式,以及螢幕繪製的方式。 如果您想要轉譯 HTML 內容,並將其他 UI 元素放在該 HTML 內容之上,您應該使用 WebViewBrush 作為轉譯區域。 WebView 仍會提供 HTML 來源資訊,而且您透過 SourceName 屬性參考該 WebView。 WebViewBrush 沒有此重迭限制。

如果您想要顯示只偶爾有重迭內容的互動式 WebView (,例如下拉式清單或應用程式行) ,您可以在必要時暫時隱藏 WebView 控制項,使用 WebViewBrush 填滿將它取代為元素。 然後,當重迭的內容不再存在時,您可以再次顯示原始的 WebView。

注意

從 Windows 8.1 開始,已修正「空間問題」,不適用於以Windows 8.1或Windows 10為目標的應用程式。

WebView 一律會在檔案模式中使用 Internet Explorer 10。

版本歷程記錄

Windows 版本 SDK 版本 新增值
1607 14393 XYFocusDown
1607 14393 XYFocusLeft
1607 14393 XYFocusRight
1607 14393 XYFocusUp
1803 17134 SeparateProcessLost
1809 17763 WebResourceRequested

建構函式

WebView()

初始化 WebView 類別的新實例。

WebView(WebViewExecutionMode)

使用指定的執行模式,初始化 WebView 類別的新實例。

屬性

AccessKey

取得或設定這個專案的便捷鍵 (助憶鍵) 。

(繼承來源 UIElement)
AccessKeyScopeOwner

取得或設定來源專案,這個元素會提供這個專案的存取索引鍵範圍,即使它不在來源專案的視覺化樹狀結構中也一樣。

(繼承來源 UIElement)
ActualHeight

取得 FrameworkElement的呈現高度。 請參閱<備註>。

(繼承來源 FrameworkElement)
ActualOffset

取得這個 UIElement 的位置,相對於其父系,在配置程式的排列階段期間計算。

(繼承來源 UIElement)
ActualSize

取得這個 UIElement 在配置程式的排列階段期間計算的大小。

(繼承來源 UIElement)
ActualTheme

取得專案目前使用的 UI 主題,可能與 RequestedTheme不同。

(繼承來源 FrameworkElement)
ActualWidth

取得 FrameworkElement的呈現寬度。 請參閱<備註>。

(繼承來源 FrameworkElement)
AllowDrop

取得或設定值,這個值會判斷這個 UIElement 是否可以是拖放作業的置放目標。

(繼承來源 UIElement)
AllowedScriptNotifyUris

注意

針對 Windows 8.1 編譯的應用程式不支援 AllowedScriptNotifyUris。 請改為更新應用程式資訊清單的 ApplicationContentUriRules 區段。 如需詳細資訊,請參閱一節。

取得或設定允許將此WebView引發ScriptNotify事件的 URI 安全清單。

AllowedScriptNotifyUrisProperty

注意

針對 Windows 8.1 編譯的應用程式不支援 AllowedScriptNotifyUrisProperty。 請改為更新應用程式資訊清單的 ApplicationContentUriRules 區段。 如需詳細資訊,請參閱一節。

識別 AllowedScriptNotifyUris 相依性屬性。

AllowFocusOnInteraction

取得或設定值,這個值表示當使用者與其互動時,專案是否會自動取得焦點。

(繼承來源 FrameworkElement)
AllowFocusWhenDisabled

取得或設定停用的控制項是否可以接收焦點。

(繼承來源 FrameworkElement)
AnyScriptNotifyUri

注意

針對 Windows 8.1 編譯的應用程式不支援 AnyScriptNotifyUri。 請改為更新應用程式資訊清單的 ApplicationContentUriRules 區段。 如需詳細資訊,請參閱一節。

取得值,這個值可用來設定 AllowedScriptNotifyUris 屬性,指出任何頁面都可以引發 ScriptNotify 事件至此 WebView

BaseUri

取得統一資源識別元 (URI) ,代表 XAML 載入時間 XAML 建構物件的基底統一資源識別元 (URI) 。 此屬性適用于執行時間的統一資源識別項 (URI) 解析。

(繼承來源 FrameworkElement)
CacheMode

取得或設定值,這個值表示轉譯的內容應該盡可能快取為複合點陣圖。

(繼承來源 UIElement)
CanBeScrollAnchor

取得或設定值,這個值表示 UIElement 是否可以是捲動錨定候選項目。

(繼承來源 UIElement)
CanDrag

取得或設定值,這個值表示是否可以將專案拖曳為拖放作業中的資料。

(繼承來源 UIElement)
CanGoBack

取得值,指出回溯導覽歷程記錄中是否有至少一個頁面。

CanGoBackProperty

識別 CanGoBack 相依性屬性。

CanGoForward

取得值,這個值表示向前流覽歷程記錄中是否有至少一個頁面。

CanGoForwardProperty

識別 CanGoForward 相依性屬性。

CenterPoint

取得或設定專案的中心點,也就是發生旋轉或縮放的點。 影響專案的轉譯位置。

(繼承來源 UIElement)
Clip

取得或設定用來定義UIElement內容的大綱的RectangleGeometry

(繼承來源 UIElement)
CompositeMode

取得或設定屬性,這個屬性會宣告其父版面配置和視窗中專案的替代組合和混合模式。 這與混合 XAML/Microsoft DirectX UI 相關的元素相關。

(繼承來源 UIElement)
ContainsFullScreenElement

取得值,指出 WebView 是否包含支援全螢幕的專案。

ContainsFullScreenElementProperty

識別 ContainsFullScreenElement 相依性屬性。

ContextFlyout

取得或設定與這個專案相關聯的飛出視窗。

(繼承來源 UIElement)
DataContext

取得或設定 FrameworkElement的資料內容。 資料內容的常見用法是 當 FrameworkElement 使用 {Binding} 標記延伸並參與資料系結時。

(繼承來源 FrameworkElement)
DataTransferPackage

注意

dataTransferPackage 可能會在Windows 8.1之後變更或無法使用版本。 請改用 CaptureSelectedContentToDataPackageAsync

取得傳遞至WebView的剪貼簿DataPackage

DataTransferPackageProperty

注意

DataTransferPackageProperty 可能會在Windows 8.1之後變更或無法使用版本。 請改用 CaptureSelectedContentToDataPackageAsync

識別 DataTransferPackage 相依性屬性。

DefaultBackgroundColor

取得或設定當 HTML 內容未指定色彩時,做為 WebView 背景使用的色彩。

DefaultBackgroundColorProperty

識別 DefaultBackgroundColor 相依性屬性。

DefaultExecutionMode

取得目前應用程式中 WebView 實例的預設執行緒行為。

DeferredPermissionRequests

取得正在等候授與或拒絕的許可權要求集合。

DesiredSize

取得此 UIElement 在版面配置程式的量值階段期間計算的大小。

(繼承來源 UIElement)
Dispatcher

取得與此物件相關聯的 CoreDispatcherCoreDispatcher代表可以存取 UI 執行緒上DependencyObject的功能,即使程式碼是由非 UI 執行緒起始也一樣。

(繼承來源 DependencyObject)
DocumentTitle

取得目前顯示在 WebView中的頁面標題。

DocumentTitleProperty

識別 DocumentTitle 相依性屬性。

ExecutionMode

取得值,指出 WebView 裝載 UI 執行緒或非 UI 執行緒上的內容。

ExitDisplayModeOnAccessKeyInvoked

取得或設定值,這個值會指定叫用存取金鑰時,是否關閉存取金鑰顯示。

(繼承來源 UIElement)
FlowDirection

取得或設定文字和其他 UI 元素在控制其版面配置的任何父元素內流動的方向。 這個屬性可以設定為 LeftToRightRightToLeft。 在任何元素上將 FlowDirection 設定為 RightToLeft ,會將對齊方式設定為右側、從右至左的讀取順序,以及控制項從右至左流動的版面配置。

(繼承來源 FrameworkElement)
FocusVisualMargin

取得或設定 FrameworkElement焦點視覺效果的外部邊界。

(繼承來源 FrameworkElement)
FocusVisualPrimaryBrush

取得或設定筆刷,用來繪製FrameworkElement之或 Reveal 焦點視覺效果的外部 HighVisibility 框線。

(繼承來源 FrameworkElement)
FocusVisualPrimaryThickness

取得或設定FrameworkElement之外部 Reveal 框線的 HighVisibility 粗細。

(繼承來源 FrameworkElement)
FocusVisualSecondaryBrush

取得或設定筆刷,用來繪製FrameworkElement之或 Reveal 焦點視覺效果的內部 HighVisibility 框線。

(繼承來源 FrameworkElement)
FocusVisualSecondaryThickness

取得或設定FrameworkElementHighVisibilityReveal 焦點視覺效果的內部框線粗細。

(繼承來源 FrameworkElement)
Height

取得或設定 FrameworkElement的建議高度。

(繼承來源 FrameworkElement)
HighContrastAdjustment

取得或設定值,這個值表示當啟用高對比主題時,架構是否會自動調整專案的視覺屬性。

(繼承來源 UIElement)
HorizontalAlignment

取得或設定在版面配置父系中撰寫時套用至 FrameworkElement 的水準對齊特性,例如面板或專案控制項。

(繼承來源 FrameworkElement)
IsAccessKeyScope

取得或設定值,這個值表示專案是否定義自己的便捷鍵範圍。

(繼承來源 UIElement)
IsDoubleTapEnabled

取得或設定值,這個值會判斷 DoubleTapped 事件是否可能來自該專案。

(繼承來源 UIElement)
IsHitTestVisible

取得或設定這個 UIElement 的包含區域是否可以傳回 true 值來進行點擊測試。

(繼承來源 UIElement)
IsHoldingEnabled

取得或設定值,這個值會判斷 Holding 事件是否可以來自該專案。

(繼承來源 UIElement)
IsLoaded

取得值,這個值表示專案是否已加入至專案樹狀結構,且已準備好進行互動。

(繼承來源 FrameworkElement)
IsRightTapEnabled

取得或設定值,這個值會判斷 RightTapped 事件是否可能來自該專案。

(繼承來源 UIElement)
IsTapEnabled

取得或設定值,這個值會判斷 Tapped 事件是否可能來自該專案。

(繼承來源 UIElement)
KeyboardAcceleratorPlacementMode

取得或設定值,這個值表示控制項 工具提示 是否顯示其相關聯鍵盤快速鍵的按鍵組合。

(繼承來源 UIElement)
KeyboardAcceleratorPlacementTarget

取得或設定值,這個值表示顯示快速鍵組合的控制項 工具提示

(繼承來源 UIElement)
KeyboardAccelerators

取得使用鍵盤叫用動作的按鍵組合集合。

快速鍵通常會指派給按鈕或功能表項目。

顯示各種功能表項目鍵盤快速鍵的功能表範例
顯示各種功能表項目鍵盤快速鍵的功能表範例

(繼承來源 UIElement)
KeyTipHorizontalOffset

取得或設定值,這個值表示相對於 UIElement 放置按鍵提示的左邊或右邊。

(繼承來源 UIElement)
KeyTipPlacementMode

取得或設定值,這個值表示相對於 UIElement 界限放置便捷鍵按鍵提示的位置。

(繼承來源 UIElement)
KeyTipTarget

取得或設定值,這個值表示以便捷鍵提示為目標的專案。

(繼承來源 UIElement)
KeyTipVerticalOffset

取得或設定值,這個值表示相對於 UI 元素放置按鍵提示的上下距離。

(繼承來源 UIElement)
Language

取得或設定套用至 FrameworkElement的當地語系化/全球化語言資訊,以及套用至物件標記法和 UI 中目前 FrameworkElement 的所有子項目。

(繼承來源 FrameworkElement)
Lights

取得附加至這個專案的 XamlLight 物件集合。

(繼承來源 UIElement)
ManipulationMode

取得或設定用於UIElement行為與手勢互動的ManipulationModes值。 設定此值可讓您處理來自應用程式程式碼中這個專案的操作事件。

(繼承來源 UIElement)
Margin

取得或設定 FrameworkElement的外部邊界。

(繼承來源 FrameworkElement)
MaxHeight

取得或設定 FrameworkElement的最大高度條件約束。

(繼承來源 FrameworkElement)
MaxWidth

取得或設定 FrameworkElement的最大寬度條件約束。

(繼承來源 FrameworkElement)
MinHeight

取得或設定 FrameworkElement的最小高度條件約束。

(繼承來源 FrameworkElement)
MinWidth

取得或設定 FrameworkElement的最小寬度條件約束。

(繼承來源 FrameworkElement)
Name

取得或設定 物件的識別名稱。 當 XAML 處理器從 XAML 標記建立物件樹狀結構時,執行時間程式碼可以透過這個名稱參考 XAML 宣告的物件。

(繼承來源 FrameworkElement)
Opacity

取得或設定物件的不透明度程度。

(繼承來源 UIElement)
OpacityTransition

取得或設定 ScalarTransition,以動畫顯示 Opacity 屬性的變更。

(繼承來源 UIElement)
Parent

取得物件樹狀結構中這個 FrameworkElement 的父物件。

(繼承來源 FrameworkElement)
PointerCaptures

取得所有擷取的指標集合,表示為 Pointer 值。

(繼承來源 UIElement)
Projection

取得或設定轉譯這個專案時要套用 (立體效果) 的透視投影。

(繼承來源 UIElement)
RenderSize

取得 UIElement的最終轉譯大小。 不建議使用,請參閱。

(繼承來源 UIElement)
RenderTransform

取得或設定會影響 UIElement轉譯位置的轉換資訊。

(繼承來源 UIElement)
RenderTransformOrigin

取得或設定 RenderTransform所宣告之任何可能轉譯轉換的原點,相對於 UIElement的界限。

(繼承來源 UIElement)
RequestedTheme

取得或設定 UIElement (及其子項目) 用於資源判斷的 UI 主題。 您使用 RequestedTheme 指定的 UI 主題可以覆寫應用層級 RequestedTheme

(繼承來源 FrameworkElement)
Resources

取得本機定義的資源字典。 在 XAML 中,您可以透過 XAML 隱含集合語法,將資源專案建立為屬性專案的子物件專案 frameworkElement.Resources

(繼承來源 FrameworkElement)
Rotation

取得或設定順時針旋轉的角度,以度為單位。 相對於 RotationAxis 和 CenterPoint 旋轉。 影響專案的轉譯位置。

(繼承來源 UIElement)
RotationAxis

取得或設定要繞著專案旋轉的軸。

(繼承來源 UIElement)
RotationTransition

取得或設定 ScalarTransition,以動畫顯示 Rotation 屬性的變更。

(繼承來源 UIElement)
Scale

取得或設定專案的小數位數。 相對於專案的 CenterPoint 縮放比例。 影響專案的轉譯位置。

(繼承來源 UIElement)
ScaleTransition

取得或設定 Vector3Transition,以動畫顯示 Scale 屬性的變更。

(繼承來源 UIElement)
Settings

取得 WebViewSettings 物件,其中包含啟用或停用 WebView 功能的屬性。

Shadow

取得或設定 專案所轉換的陰影效果。

(繼承來源 UIElement)
Source

取得或設定要顯示在 WebView 控制項中之 HTML 內容的統一資源識別項 (URI) 來源。

SourceProperty

識別 來源 相依性屬性。

Style

取得或設定配置和轉譯期間針對這個物件套用的實例 Style

(繼承來源 FrameworkElement)
TabFocusNavigation

取得或設定值,這個值會修改 Tabbing 和 TabIndex 對此控制項的運作方式。

(繼承來源 UIElement)
Tag

取得或設定任意物件值,可用來儲存這個物件的自訂資訊。

(繼承來源 FrameworkElement)
Transform3D

取得或設定轉譯這個專案時要套用的 3D 轉換效果。

(繼承來源 UIElement)
TransformMatrix

取得或設定要套用至專案的轉換矩陣。

(繼承來源 UIElement)
Transitions

取得或設定套用至UIElementTransition樣式專案集合。

(繼承來源 UIElement)
Translation

取得或設定專案的 x、y 和 z 轉譯位置。

(繼承來源 UIElement)
TranslationTransition

取得或設定 Vector3Transition,以動畫顯示 Translation 屬性的變更。

(繼承來源 UIElement)
Triggers

取得針對 FrameworkElement定義的動畫觸發程式集合。 不常使用。 請參閱<備註>。

(繼承來源 FrameworkElement)
UIContext

取得專案的內容識別碼。

(繼承來源 UIElement)
UseLayoutRounding

取得或設定值,這個值會判斷物件及其視覺子樹的轉譯是否應該使用四捨五入行為,將轉譯對齊整個圖元。

(繼承來源 UIElement)
VerticalAlignment

取得或設定在面板或專案控制項等父物件中撰寫時套用至 FrameworkElement 的垂直對齊特性。

(繼承來源 FrameworkElement)
Visibility

取得或設定 UIElement的可見度。 不會轉譯不可見的 UIElement ,也不會將其所需的大小傳達給版面配置。

(繼承來源 UIElement)
Width

取得或設定 FrameworkElement的寬度。

(繼承來源 FrameworkElement)
XamlRoot

取得或設定 XamlRoot 正在檢視這個專案的 。

(繼承來源 UIElement)
XYFocusDown

取得或設定當使用者按下方向板 (D 鍵) 向下時取得焦點的物件。

XYFocusDownNavigationStrategy

取得或設定值,指定用來判斷向下流覽之目標元素的策略。

(繼承來源 UIElement)
XYFocusDownProperty

識別 XYFocusDown 相依性屬性。

XYFocusKeyboardNavigation

取得或設定值,這個值會啟用或停用使用鍵盤方向箭號的流覽。

(繼承來源 UIElement)
XYFocusLeft

取得或設定當使用者按下方向板 (D 鍵) 左鍵時取得焦點的物件。

XYFocusLeftNavigationStrategy

取得或設定值,指定用來判斷左側導覽之目標元素的策略。

(繼承來源 UIElement)
XYFocusLeftProperty

識別 XYFocusLeft 相依性屬性。

XYFocusRight

取得或設定當使用者按下方向板 (D 鍵) 右鍵時取得焦點的物件。

XYFocusRightNavigationStrategy

取得或設定值,指定用來判斷右導覽之目標元素的策略。

(繼承來源 UIElement)
XYFocusRightProperty

識別 XYFocusRight 相依性屬性。

XYFocusUp

取得或設定當使用者按下方向板 (D 鍵) 時取得焦點的物件。

XYFocusUpNavigationStrategy

取得或設定值,指定用來判斷向上流覽之目標元素的策略。

(繼承來源 UIElement)
XYFocusUpProperty

識別 XYFocusUp 相依性屬性。

方法

AddHandler(RoutedEvent, Object, Boolean)

加入所指定路由事件的路由事件處理常式,會將此處理常式加入目前項目的處理常式集合中。 將 handledEventsToo 指定為 true ,以便叫用提供的處理常式,即使事件是在其他地方處理也一樣。

(繼承來源 UIElement)
AddWebAllowedObject(String, Object)

將原生Windows 執行階段物件當做全域參數新增至WebView內的最上層檔。

Arrange(Rect)

放置子物件,並決定 UIElement的大小。 為其子專案實作自訂配置的父物件應該從其版面配置覆寫實作呼叫此方法,以形成遞迴版面配置更新。

(繼承來源 UIElement)
ArrangeOverride(Size)

提供配置「排列」傳遞的行為。 類別可以覆寫這個方法,以定義自己的「排列」傳遞行為。

(繼承來源 FrameworkElement)
BuildLocalStreamUri(String, String)

建立您可以傳遞至 NavigateToLocalStreamUri 的URI。

CancelDirectManipulations()

取消任何包含目前UIElementScrollViewer父代上 (系統定義的移動流覽/縮放) 進行中的直接操作處理。

(繼承來源 UIElement)
CapturePointer(Pointer)

設定 UIElement的指標擷取。 擷取之後,只有具有擷取的專案才會引發指標相關事件。

(繼承來源 UIElement)
CapturePreviewToStreamAsync(IRandomAccessStream)

建立目前 WebView 內容的影像,並將它寫入指定的資料流程。

CaptureSelectedContentToDataPackageAsync()

以非同步方式取得 DataPackage ,其中包含 WebView內選取的內容。

ClearTemporaryWebDataAsync()

清除 WebView的快取和 IndexedDB 資料。

ClearValue(DependencyProperty)

清除相依性屬性的本機值。

(繼承來源 DependencyObject)
DeferredPermissionRequestById(UInt32)

傳回具有指定 識別碼的延後許可權要求。

FindName(String)

擷取具有指定識別碼名稱的物件。

(繼承來源 FrameworkElement)
FindSubElementsForTouchTargeting(Point, Rect)

可讓 UIElement 子類別公開可協助解決觸控目標的子專案。

(繼承來源 UIElement)
Focus(FocusState)

將輸入焦點設定為 WebView

GetAnimationBaseValue(DependencyProperty)

傳回針對相依性屬性所建立的任何基底值,如果動畫未使用中,則會套用。

(繼承來源 DependencyObject)
GetBindingExpression(DependencyProperty)

會傳回代表指定屬性上系結的 BindingExpression

(繼承來源 FrameworkElement)
GetChildrenInTabFocusOrder()

可讓 UIElement 子類別公開參與 Tab 焦點的子專案。

(繼承來源 UIElement)
GetValue(DependencyProperty)

DependencyObject傳回相依性屬性的目前有效值。

(繼承來源 DependencyObject)
GoBack()

WebView 巡覽至流覽歷程記錄中的上一頁。

GoForward()

WebView 巡覽至流覽歷程記錄中的下一個頁面。

GoToElementStateCore(String, Boolean)

在衍生類別中實作時,可在程式碼中啟用控制項範本的個別狀態建構視覺化樹狀結構,而不是在控制項啟動時載入所有狀態的 XAML。

(繼承來源 FrameworkElement)
InvalidateArrange()

使 UIElement的排列狀態 (配置) 失效。 失效之後, UIElement 會更新其版面配置,這會以非同步方式發生。

(繼承來源 UIElement)
InvalidateMeasure()

使 UIElement的度量狀態 (配置) 失效。

(繼承來源 UIElement)
InvalidateViewport()

使用來計算有效檢視區的UIElement檢視區狀態失效。

(繼承來源 FrameworkElement)
InvokeScript(String, String[])

注意

在發行Windows 8.1之後,InvokeScript 可能會改變或無法使用。 請改用 InvokeScriptAsync

使用特定引數,從目前載入的 HTML 執行指定的腳本函式。

InvokeScriptAsync(String, IIterable<String>)

從目前載入的 HTML 執行指定的腳本函式,並搭配特定引數作為非同步動作。

Measure(Size)

更新UIElementDesiredSize。 一般而言,實作其版面配置子系之自訂配置的物件會從自己的 MeasureOverride 實作呼叫此方法,以形成遞迴版面配置更新。

(繼承來源 UIElement)
MeasureOverride(Size)

提供配置週期的「量值」傳遞行為。 類別可以覆寫這個方法,以定義自己的「量值」傳遞行為。

(繼承來源 FrameworkElement)
Navigate(Uri)

將 HTML 內容載入指定的統一資源識別項 (URI) 。

NavigateToLocalStreamUri(Uri, IUriToStreamResolver)

使用 IUriToStreamResolver,在指定的 URI 上載入本機 Web 內容。

NavigateToString(String)

將指定的 HTML 內容載入為新檔。

NavigateWithHttpRequestMessage(HttpRequestMessage)

WebView 巡覽至具有 POST 要求和 HTTP 標頭的 URI。

OnApplyTemplate()

每當應用程式程式碼或內部進程 (,例如重建版面配置傳遞) 呼叫 ApplyTemplate時叫用。 在最簡單的詞彙中,這表示方法只會在應用程式中顯示 UI 元素之前呼叫。 覆寫這個方法,以影響類別的預設範本後邏輯。

(繼承來源 FrameworkElement)
OnBringIntoViewRequested(BringIntoViewRequestedEventArgs)

在 BringIntoViewRequested事件發生之前呼叫。

(繼承來源 UIElement)
OnCreateAutomationPeer()

在衍生類別中實作時,會傳回 Microsoft UI 自動化基礎結構的類別特定 AutomationPeer 實作。

(繼承來源 UIElement)
OnDisconnectVisualChildren()

覆寫這個方法,以實作從類別特定內容或子屬性移除專案時配置和邏輯的行為。

(繼承來源 UIElement)
OnKeyboardAcceleratorInvoked(KeyboardAcceleratorInvokedEventArgs)

在應用程式中處理 鍵盤快速鍵 (或快速鍵) 時呼叫。 覆寫這個方法,以處理叫用鍵盤快速鍵時您的應用程式回應方式。

(繼承來源 UIElement)
OnProcessKeyboardAccelerators(ProcessKeyboardAcceleratorEventArgs)

在應用程式中處理 鍵盤快速鍵 (或快速鍵) 之前呼叫。 每當應用程式程式碼或內部進程呼叫 ProcessKeyboardAccelerators時叫用。 覆寫此方法以影響預設加速器處理。

(繼承來源 UIElement)
PopulatePropertyInfo(String, AnimationPropertyInfo)

定義可以產生動畫效果的屬性。

(繼承來源 UIElement)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

在衍生類別中覆寫時,定義可以產生動畫效果的屬性。

(繼承來源 UIElement)
ReadLocalValue(DependencyProperty)

如果已設定本機值,則傳回相依性屬性的本機值。

(繼承來源 DependencyObject)
Refresh()

重載 WebView中的目前內容。

RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

註冊通知函式,以接聽此DependencyObject實例上特定DependencyProperty的變更。

(繼承來源 DependencyObject)
ReleasePointerCapture(Pointer)

釋放指標擷取,以供這個 UIElement擷取一個特定指標。

(繼承來源 UIElement)
ReleasePointerCaptures()

釋放這個專案保留的所有指標擷取。

(繼承來源 UIElement)
RemoveHandler(RoutedEvent, Object)

從這個 UIElement移除指定的路由事件處理常式。 通常會由 AddHandler新增有問題的處理常式。

(繼承來源 UIElement)
SetBinding(DependencyProperty, BindingBase)

使用提供的系結物件,將系結附加至 FrameworkElement

(繼承來源 FrameworkElement)
SetValue(DependencyProperty, Object)

DependencyObject上設定相依性屬性的本機值。

(繼承來源 DependencyObject)
StartAnimation(ICompositionAnimationBase)

開始專案上的指定動畫。

(繼承來源 UIElement)
StartBringIntoView()

起始 XAML 架構的要求,以將元素帶入其內含之任何可捲動區域內的檢視。

(繼承來源 UIElement)
StartBringIntoView(BringIntoViewOptions)

初始化 XAML 架構的要求,以使用指定的選項將專案帶入檢視。

(繼承來源 UIElement)
StartDragAsync(PointerPoint)

啟始拖放作業。

(繼承來源 UIElement)
Stop()

停止目前的 WebView 流覽或下載。

StopAnimation(ICompositionAnimationBase)

停止元素上的指定動畫。

(繼承來源 UIElement)
TransformToVisual(UIElement)

傳回轉換物件,可用來將 UIElement 的座標轉換為指定的物件。

(繼承來源 UIElement)
TryInvokeKeyboardAccelerator(ProcessKeyboardAcceleratorEventArgs)

嘗試搜尋 UIElement 的整個視覺化樹狀結構, 以叫用鍵盤快速鍵 (或快速鍵)

(繼承來源 UIElement)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

取消先前透過呼叫 RegisterPropertyChangedCallback註冊的變更通知。

(繼承來源 DependencyObject)
UpdateLayout()

確保 UIElement 子物件的所有位置都已針對版面配置正確更新。

(繼承來源 UIElement)

事件

AccessKeyDisplayDismissed

發生于不應再顯示存取金鑰時。

(繼承來源 UIElement)
AccessKeyDisplayRequested

發生于使用者要求顯示存取金鑰時。

(繼承來源 UIElement)
AccessKeyInvoked

發生于使用者完成存取金鑰序列時。

(繼承來源 UIElement)
ActualThemeChanged

發生于 ActualTheme 屬性值已變更時。

(繼承來源 FrameworkElement)
BringIntoViewRequested

在這個專案或其中一個子代上呼叫 StartBringIntoView 時發生。

(繼承來源 UIElement)
CharacterReceived

發生于輸入佇列收到單一撰寫字元時。

(繼承來源 UIElement)
ContainsFullScreenElementChanged

發生于 WebView 目前是否包含全螢幕元素的狀態時。

ContentLoading

發生于 WebView 開始載入新內容時。

ContextCanceled

當內容輸入手勢繼續進入操作手勢時發生,以通知專案不應開啟內容飛出視窗。

(繼承來源 UIElement)
ContextRequested

發生于使用者完成內容輸入手勢時,例如按一下滑鼠右鍵。

(繼承來源 UIElement)
DataContextChanged

發生于 FrameworkElement.DataCoNtext 屬性的值變更時。

(繼承來源 FrameworkElement)
DOMContentLoaded

WebView 完成剖析目前的 HTML 內容時發生。

DoubleTapped

發生于此元素的點擊測試區域上發生未處理的 DoubleTap 互動時。

(繼承來源 UIElement)
DragEnter

當輸入系統報告具有這個專案作為目標的基礎拖曳事件時發生。

(繼承來源 UIElement)
DragLeave

當輸入系統報告基礎拖曳事件,並將這個專案當做原點時發生。

(繼承來源 UIElement)
DragOver

在輸入系統回報以此項目作為可能置放目標的基礎拖曳事件時發生。

(繼承來源 UIElement)
DragStarting

發生于起始拖曳作業時。

(繼承來源 UIElement)
Drop

輸入系統報告其下以這個項目作為置放目標的置放事件時發生。

(繼承來源 UIElement)
DropCompleted

發生于以這個專案做為來源結束的拖放作業時。

(繼承來源 UIElement)
EffectiveViewportChanged

發生于 FrameworkElement的有效檢視區 變更時。

(繼承來源 FrameworkElement)
FrameContentLoading

發生于 WebView 中的框架開始載入新內容時。

FrameDOMContentLoaded

發生于 WebView 中的框架完成剖析其目前 HTML 內容時。

FrameNavigationCompleted

發生于 WebView 中的框架完成載入其內容時。

FrameNavigationStarting

發生在 WebView 中的框架巡覽至新內容之前。

GettingFocus

發生于 UIElement 收到焦點之前。 此事件會同步引發,以確保事件反升時不會移動焦點。

(繼承來源 UIElement)
GotFocus

發生于 UIElement 收到焦點時。 這個事件會以非同步方式引發,因此焦點可以在反升完成之前再次移動。

(繼承來源 UIElement)
Holding

發生于此元素的點擊測試區域上發生未處理的 保留 互動時。

(繼承來源 UIElement)
KeyDown

發生于 UIElement 有焦點時按下鍵盤按鍵時。

(繼承來源 UIElement)
KeyUp

發生于 UIElement 有焦點時放開鍵盤按鍵時。

(繼承來源 UIElement)
LayoutUpdated

發生于視覺化樹狀結構的版面配置變更時,因為配置相關屬性變更值或重新整理版面配置的其他動作。

(繼承來源 FrameworkElement)
LoadCompleted

注意

LoadCompleted 可能會在Windows 8.1之後變更或無法使用版本。 請改用 NavigationCompleted

發生于最上層導覽完成且內容載入 至 WebView 控制項,或在載入期間發生錯誤時發生。

Loaded

發生于 架構Element 已建構並新增至物件樹狀結構,並準備好進行互動時。

(繼承來源 FrameworkElement)
Loading

FrameworkElement 開始載入時發生。

(繼承來源 FrameworkElement)
LongRunningScriptDetected

WebView 執行 JavaScript 時定期發生,讓您停止腳本。

LosingFocus

發生于 UIElement 失去焦點之前。 此事件會同步引發,以確保事件反升時不會移動焦點。

(繼承來源 UIElement)
LostFocus

發生于 UIElement 失去焦點時。 這個事件會以非同步方式引發,因此焦點可以在反升完成之前再次移動。

(繼承來源 UIElement)
ManipulationCompleted

發生于 UIElement 上的操作完成時。

(繼承來源 UIElement)
ManipulationDelta

輸入裝置在操作期間變更位置時發生。

(繼承來源 UIElement)
ManipulationInertiaStarting

在操作和慣性開始的時候,只要輸入裝置不與 UIElement 物件接觸便發生。

(繼承來源 UIElement)
ManipulationStarted

當輸入裝置開始在 UIElement 進行操作時發生。

(繼承來源 UIElement)
ManipulationStarting

發生於第一次建立操作處理器時。

(繼承來源 UIElement)
NavigationCompleted

WebView 完成載入目前內容,或流覽失敗時發生。

NavigationFailed

注意

Windows 8.1之後,可能會變更或無法使用 NavigationFailed 版本。 請改用 NavigationCompleted

發生于 WebView 無法完成流覽嘗試時。

NavigationStarting

發生于 WebView 巡覽至新內容之前。

NewWindowRequested

發生于使用者在 WebView 中執行動作,導致新視窗中開啟內容時。

NoFocusCandidateFound

發生于使用者嘗試透過定位鍵或方向箭號 (移動焦點時) ,但焦點不會移動,因為沒有在移動方向找到焦點候選項目。

(繼承來源 UIElement)
PermissionRequested

發生于 WebView 中的動作需要授與該許可權時。

PointerCanceled

發生于讓連絡人異常遺失連絡人的指標時。

(繼承來源 UIElement)
PointerCaptureLost

發生于此元素先前保留的指標擷取移至另一個專案或其他地方時。

(繼承來源 UIElement)
PointerEntered

發生于指標進入這個專案的點擊測試區域時。

(繼承來源 UIElement)
PointerExited

發生于指標離開這個專案的點擊測試區域時。

(繼承來源 UIElement)
PointerMoved

當指標在指標保留在這個專案的點擊測試區域中時移動時發生。

(繼承來源 UIElement)
PointerPressed

發生于指標裝置起始這個專案內的 Press 動作時。

(繼承來源 UIElement)
PointerReleased

發生于先前起始 「按下」 動作的指標裝置釋放時,同時在此元素內。 請注意, Press 動作的結尾不保證會引發 PointerReleased 事件;其他事件可能會改為引發。 如需詳細資訊,請參閱。

(繼承來源 UIElement)
PointerWheelChanged

發生于指標滾輪的差異值變更時。

(繼承來源 UIElement)
PreviewKeyDown

發生于 UIElement 有焦點時按下鍵盤按鍵時。

(繼承來源 UIElement)
PreviewKeyUp

發生于 UIElement 有焦點時放開鍵盤按鍵時。

(繼承來源 UIElement)
ProcessKeyboardAccelerators

發生于按下 鍵盤快速鍵 (或快速鍵) 時。

(繼承來源 UIElement)
RightTapped

發生于指標位於元素上方時發生右點選輸入壓力時。

(繼承來源 UIElement)
ScriptNotify

發生于 WebView 控制項中包含的內容使用 JavaScript 將字串傳遞至應用程式時。

SeparateProcessLost

當 WebView 以SeparateProcessExecutionMode執行,而個別進程遺失時發生。

SizeChanged

發生于 ActualHeightActualWidth 屬性變更 FrameworkElement上的值時。

(繼承來源 FrameworkElement)
Tapped

發生于此元素的點擊測試區域上發生未處理的 Tap 互動時。

(繼承來源 UIElement)
Unloaded

當這個物件不再連接到主物件樹狀結構時發生。

(繼承來源 FrameworkElement)
UnsafeContentWarningDisplaying

WebView 顯示 SmartScreen 篩選所回報為不安全的內容警告頁面時發生。

UnsupportedUriSchemeIdentified

發生于嘗試使用 WebView 不支援的配置流覽至統一資源識別項 (URI) 時。

UnviewableContentIdentified

發生于 WebView 嘗試下載不支援的檔案時。

WebResourceRequested

發生于已提出 HTTP 要求時。

適用於

另請參閱