Share via


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 导航到名为 AddressTextBox 中包含的 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 控件,该控件作为 Windows UI 库 2 for UWP (WinUI 2) 的一部分提供。 WebView2 使用 Microsoft Edge (Chromium) 作为呈现引擎在应用中显示 Web 内容。 有关详细信息,请参阅 Microsoft Edge WebView2 简介WinUI 2 中的 WebView2 入门 (UWP) 应用和 WinUI API 参考中的 WebView2

重要

XAML 岛:XAML 岛应用不支持此控件。 有关替代方法,请参阅 XAML 岛 - Web 视图控件

WebView 不是 控件 子类,因此没有控件模板。 可以设置各种属性来控制 WebView 的某些可视方面。 显示区域受 WidthHeight 属性的约束。 若要平移、缩放、倾斜和旋转 WebView,请使用 RenderTransform 属性。 若要控制 WebView 的不透明度,请设置 Opacity 属性。 若要在 HTML 内容不指定颜色的情况下指定一种用作 Web 页面背景的颜色,请设置 DefaultBackgroundColor 属性。

可以使用 DocumentTitle 属性获取当前显示在 WebView 中的 HTML 文档的标题。

尽管 WebView 不是 Control 子类,但它将接收键盘输入焦点并参与选项卡序列。 它提供 Focus 方法,以及 GotFocusLostFocus 事件,但它不具有 Tab 键相关属性。 它在 Tab 键序列中的位置与在 XAML 文档顺序中的位置相同。 选项卡序列包括 WebView 内容中可接收输入焦点的所有元素。

如事件表中所示,WebView 不支持从 UIElement 继承的大多数用户输入事件,例如 KeyDownKeyUpPointerPressed。 一种常见的解决方法是将 InvokeScriptAsync 与 JavaScript eval 函数配合使用,以使用 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。 这些 API 可用于向你的应用添加典型的 Web 浏览功能。

若要设置 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 schemeUri 结合使用。 此方案的 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 内容,并使用 httphttps 统一资源标识符 (URI) 方案链接到 Web 内容。

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

若要加载来自应用程序包中内容,请将 Navigate 方法与使用 ms-appx-web schemeUri 结合使用。

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 内容(如 fbconnect:// 或 mailto://)中调用不支持的统一资源标识符 (URI) 方案时,会发生 UnsupportedUriSchemeIdentified 事件。 可以处理此事件以提供自定义行为,而不是允许默认系统启动器启动统一资源标识符 (URI) 。

当 WebView 显示 SmartScreen 筛选器报告为不安全的内容的警告页面时,将发生 UnsafeContentWarningDisplaying 事件。 如果用户选择继续导航,随后导航到该页面将不显示警告,也不会触发该事件。

处理 WebView 内容的特殊情况

你可以使用 ContainsFullScreenElement 属性和 ContainsFullScreenElementChanged 事件来检测、响应和支持 Web 内容中的全屏体验,例如全屏视频播放。 例如,可以使用 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 事件来处理托管 web 内容请求显示新窗口的情况,例如弹出窗口。 你可以使用另一个 WebView 控件来显示请求窗口的内容。

PermissionRequested 事件用于启用需要特殊功能的 Web 功能。 当前这些功能包括:地理位置、IndexedDB 存储以及用户音频和视频(例如,来自麦克风或摄像头)。 如果你的应用访问用户位置或用户媒体,仍需要在应用清单中声明此功能。 例如,使用地理位置的应用在 Package.appxmanifest 中至少需要声明以下功能:

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

除了由应用处理 PermissionRequested 事件,用户还需要批准请求位置或媒体功能的应用的标准系统对话框,以便启用这些功能。

下面是应用如何在必应地图中支持地理位置的示例:

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

如果你的应用需要用户输入或其他异步操作来响应权限请求,则使用 WebViewPermissionRequestDefer 方法创建一个可以稍后执行的 WebViewDeferredPermissionRequest。 请参阅 WebViewPermissionRequest.Defer

如果用户必须安全地注销 WebView 中托管的网站,或者在安全性很重要的其他情况下,请调用静态方法 ClearTemporaryWebDataAsync 以从 WebView 会话中清除所有本地缓存的内容。 这可以防止恶意用户访问敏感数据。

与 WebView 内容交互

可以使用 InvokeScriptAsync 方法调用或将脚本注入 WebView 内容,并使用 ScriptNotify 事件从 WebView 内容中获取信息,从而与 WebView 的内容进行交互。

若要在 WebView 内容中调用 JavaScript,请使用 InvokeScriptAsync 方法。 调用的脚本只可以返回字符串值。

例如,如果名为 webViewA 的 WebView 的内容包含一个名为 setDate 的函数,该函数采用 3 个参数,则可以如下所示调用它。

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

你可以将 InvokeScriptAsync 与 JavaScript eval 函数结合使用,以便将内容注入到 Web 页面

在这里,XAML TextBox (nameTextBox.Text) 的文本将写入托管在 中的 HTML 页面中的 webViewAdiv。

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.“内容 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 运行时API。 这为 WebView 中托管的 Web 应用提供了强大的本机功能。 若要启用此功能,必须将受信任内容的统一资源标识符 (URI) 添加到 Package.appxmanifest 中应用的 ApplicationContentUriRules 中的允许列表中,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>

用于 Web 内容托管的选项

从 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.TryFocusAsyncFocusManager.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 中启动的手势。 此外,并不直接支持打印线程外的 Web 内容,应改为使用 WebViewBrush 填充打印元素。

单独进程中 WebView 的焦点行为

无论是在应用进程中运行,还是在单独的进程中运行,都可以通过调用 WebView.Focus 方法在 WebView 上设置焦点。 这等效于 Control.Focus 和 Hyperlink.Focus 方法 (注意 WebView 不派生自 Control) 。

同样, FocusManager 类上的几种方法可能会影响 WebView (或 Control 或 Hyperlink) : TryMoveFocusFindNextFocusableElementFindLastFocusableElementGetFocusedElement。 例如,TryMoveFocus 将焦点移动到 WebView,GetFocusedElement 返回具有焦点的 WebView。

最后,将焦点移入或移出 WebView 会引发焦点事件,同时在 WebView 本身以及失去或接收焦点的元素上。 事件为 LosingFocusLostFocusGettingFocusGotFocus。 例如,当焦点从控件移动到 WebView 时,控件将引发 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 Alert 函数,则不会显示它。 这是针对所有版本的 WebView 设计的。

你可能能够截获 警报 显示的信息,并在主机应用程序中执行所需的操作。 这是否可能取决于页面的编写方式以及你是否控制它。 提供了一个示例,演示了执行此操作的一种可能技术。 此示例针对 Windows 8.1 和 Windows Phone 8.1 编写,但也适用于使用 通用 Windows 平台 (UWP) 的应用。 但是,这可能不适用于每个方案。

如何在通用 Windows 应用中的 WebView 中截获 JavaScript 警报示例

早期版本的说明

Windows 8.1

Windows 8.1中弃用了以下 WebView API:

只能在 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 属性,以指示任何页面都可以对此 WebView 触发 ScriptNotify 事件。

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

注意

Windows 8.1后,DataTransferPackage 可能会更改或不可用。 请改用 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

获取或设置 FrameworkElementHighVisibilityReveal焦点视觉对象的外边框的粗细。

(继承自 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

获取或设置对 Opacity 属性的更改进行动画处理的 ScalarTransition。

(继承自 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,该 ScalarTransition 对 Rotation 属性的更改进行动画处理。

(继承自 UIElement)
Scale

获取或设置 元素的刻度。 相对于元素的 CenterPoint 缩放。 影响元素的呈现位置。

(继承自 UIElement)
ScaleTransition

获取或设置 Vector3Transition,该 Vector3Transition 对 Scale 属性的更改进行动画处理。

(继承自 UIElement)
Settings

获取一个 WebViewSettings 对象,该对象包含用于启用或禁用 WebView 功能的属性。

Shadow

获取或设置 由 元素投射的阴影效果。

(继承自 UIElement)
Source

获取或设置统一资源标识符 (URI) 要显示在 WebView 控件中的 HTML 内容的源。

SourceProperty

标识 Source 依赖属性。

Style

获取或设置在布局和呈现期间为此对象应用的实例 Style

(继承自 FrameworkElement)
TabFocusNavigation

获取或设置一个值,该值修改 tabbing 和 TabIndex 对此控件的工作方式。

(继承自 UIElement)
Tag

获取或设置可用于存储有关此对象的自定义信息的任意对象值。

(继承自 FrameworkElement)
Transform3D

获取或设置呈现此元素时要应用的三维转换效果。

(继承自 UIElement)
TransformMatrix

获取或设置要应用于 元素的转换矩阵。

(继承自 UIElement)
Transitions

获取或设置应用于 UIElementTransition 样式元素的集合。

(继承自 UIElement)
Translation

获取或设置元素的 x、y 和 z 呈现位置。

(继承自 UIElement)
TranslationTransition

获取或设置对 Translation 属性的更改进行动画处理的 Vector3Transition。

(继承自 UIElement)
Triggers

获取为 FrameworkElement 定义的动画触发器的集合。 不常用。 请参阅“备注”。

(继承自 FrameworkElement)
UIContext

获取 元素的上下文标识符。

(继承自 UIElement)
UseLayoutRounding

获取或设置一个值,该值确定对象及其可视子树的呈现是否应使用将呈现与整个像素对齐的舍入行为。

(继承自 UIElement)
VerticalAlignment

获取或设置在父对象(如面板或项控件)中组合时应用于 FrameworkElement 的垂直对齐特征。

(继承自 FrameworkElement)
Visibility

获取或设置 UIElement 的可见性。 不可见的 UIElement 不会呈现,也不会将其所需大小传达给布局。

(继承自 UIElement)
Width

获取或设置 FrameworkElement 的宽度。

(继承自 FrameworkElement)
XamlRoot

获取或设置 XamlRoot 在其中查看此元素的 。

(继承自 UIElement)
XYFocusDown

获取或设置当用户按下方向键 (方向键) 时获取焦点的对象。

XYFocusDownNavigationStrategy

获取或设置一个值,该值指定用于确定向下导航的目标元素的策略。

(继承自 UIElement)
XYFocusDownProperty

标识 XYFocusDown 依赖属性。

XYFocusKeyboardNavigation

获取或设置一个值,该值使用键盘方向箭头启用或禁用导航。

(继承自 UIElement)
XYFocusLeft

获取或设置当用户向左按方向键 (方向键时获取焦点的对象) 。

XYFocusLeftNavigationStrategy

获取或设置一个值,该值指定用于确定左侧导航的目标元素的策略。

(继承自 UIElement)
XYFocusLeftProperty

标识 XYFocusLeft 依赖属性。

XYFocusRight

获取或设置当用户向右按方向键 (方向键时获取焦点的对象) 。

XYFocusRightNavigationStrategy

获取或设置一个值,该值指定用于确定右导航目标元素的策略。

(继承自 UIElement)
XYFocusRightProperty

标识 XYFocusRight 依赖属性。

XYFocusUp

获取或设置当用户按下方向键 (方向键) 时获取焦点的对象。

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()

取消正在进行的直接操作处理, (系统定义的平移/缩放) 包含当前 UIElement 的任何 ScrollViewer 父级。

(继承自 UIElement)
CapturePointer(Pointer)

将指针捕获设置为 UIElement。 捕获后,只有具有捕获的元素才会触发与指针相关的事件。

(继承自 UIElement)
CapturePreviewToStreamAsync(IRandomAccessStream)

创建当前 WebView 内容的图像,并将其写入指定的流。

CaptureSelectedContentToDataPackageAsync()

异步获取一个 DataPackage ,其中包含 WebView 中的选定内容。

ClearTemporaryWebDataAsync()

清除 WebView 的缓存和 IndexedDB 数据。

ClearValue(DependencyProperty)

清除依赖属性的本地值。

(继承自 DependencyObject)
DeferredPermissionRequestById(UInt32)

返回具有指定 ID 的延迟权限请求。

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)

为布局周期的“度量”传递提供行为。 类可以重写此方法以定义其自己的“Measure”传递行为。

(继承自 FrameworkElement)
Navigate(Uri)

在指定的统一资源标识符 (URI) 加载 HTML 内容。

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

在已构造 FrameworkElement 并将其添加到对象树中并准备好交互时发生。

(继承自 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

在释放之前启动 按下 操作的指针设备时发生,同时在此元素中。 请注意, 不保证按下 操作的结尾会触发 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

在此元素的命中测试区域上发生其他未经处理的 点击 交互时发生。

(继承自 UIElement)
Unloaded

当此对象不再连接到main对象树时发生。

(继承自 FrameworkElement)
UnsafeContentWarningDisplaying

WebView 显示 SmartScreen 筛选器报告为不安全内容的警告页面时发生。

UnsupportedUriSchemeIdentified

尝试使用 WebView 不支持的方案) 导航到统一资源标识符 (URI 时发生。

UnviewableContentIdentified

WebView 尝试下载不受支持的文件时发生。

WebResourceRequested

在发出 HTTP 请求时发生。

适用于

另请参阅