Поделиться через


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)

Примеры

Совет

Дополнительные сведения, рекомендации по проектированию и примеры кода см. в разделе Веб-представление.

Если у вас установлено приложение коллекции WinUI 2 , щелкните здесь, чтобы открыть приложение и увидеть WebView в действии.

В следующем примере кода показано, как перейти из WebView к универсальному коду ресурса (URI) в элементе TextBox с именем Address.

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 для размещения веб-содержимого в приложении. Приложения для Surface Hub или Xbox должны использовать этот WebView.

Важно!

Для классических приложений рекомендуется использовать элемент управления WebView2 , который доступен в составе библиотеки пользовательского интерфейса Windows 2 для UWP (WinUI 2). WebView2 использует Microsoft Edge (Chromium) в качестве механизма отрисовки для отображения веб-содержимого в приложениях. Дополнительные сведения см. в статьях Введение в Microsoft Edge WebView2, Начало работы с WebView2 в приложениях WinUI 2 (UWP) и WebView2 в справочнике по API WinUI.

Важно!

XAML Islands. Этот элемент управления не поддерживается в приложениях XAML Islands. Дополнительные сведения см. в разделе XAML Islands — элементы управления веб-представления.

WebView не является подклассом элемента управления и, следовательно, не имеет шаблона элемента управления. Вы можете задать различные свойства для управления некоторыми визуальными аспектами WebView. Область отображения ограничена свойствами Width и Height . Для преобразования, масштабирования, изменения и поворота WebView используйте свойство RenderTransform . Чтобы управлять прозрачностью WebView, задайте свойство Opacity . Для определения цвета, который необходимо использовать в качестве фона веб-страницы, если содержимое HTML не определяет цвет, задайте свойство DefaultBackgroundColor.

Вы можете получить заголовок HTML-документа, который в настоящее время отображается в WebView, с помощью свойства DocumentTitle .

Хотя WebView не является подклассом Control , он получает фокус ввода с клавиатуры и участвует в последовательности вкладок. Он предоставляет метод Focus, а также события GotFocus и LostFocus, но у него отсутствуют свойства, связанные с вкладками. Его положение в последовательности вкладок такое же, как его положение в порядке документов XAML. Последовательность вкладок включает все элементы в содержимом WebView, которые могут получать фокус ввода.

Как указано в таблице События, WebView не поддерживает большинство событий ввода пользователем, унаследованных от UIElement, таких как KeyDown, KeyUp и PointerPressed. Распространенным обходным решением является использование InvokeScriptAsync с функцией javaScript eval для использования обработчиков событий HTML и использование window.external.notify из обработчика событий HTML для уведомления приложения с помощью WebView.ScriptNotify.

В приложениях, скомпилированных для Windows 10, WebView использует модуль отрисовки Microsoft Edge для отображения HTML-содержимого. В приложениях, скомпилированных для Windows 8 или Windows 8.1, WebView использует Интернет Обозреватель 11 в режиме документа. Он не поддерживает элементы управления Или подключаемые модули Microsoft ActiveX, такие как Microsoft Silverlight или pdf-файлы.

WebView предоставляет несколько API для базовой навигации: GoBack, GoForward, Stop, Refresh, CanGoBack и CanGoForward. Вы можете использовать их, чтобы добавить в приложение стандартные возможности просмотра веб-страниц.

Чтобы задать начальное содержимое WebView, задайте свойство Source в XAML. Анализатор 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 для загрузки содержимого в код.

Чтобы загрузить веб-содержимое, используйте метод Navigate с универсальным кодом ресурса (URI ), который использует схему http или https .

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

Чтобы перейти к универсальному коду ресурса (URI) с запросом POST и заголовками HTTP, используйте метод NavigateWithHttpRequestMessage . Этот метод поддерживает только HttpMethod.Post и HttpMethod.Get для значения свойства HttpRequestMessage.Method.

Чтобы загрузить несжатое и незашифрованное содержимое хранилищ данных LocalFolder или TemporaryFolder вашего приложения, используйте метод Navigate с Uri, использующим схему ms-appdata. Поддержка WebView для этой схемы требует размещения содержимого во вложенной папке в локальной или временной папке. Это позволяет переходить по универсальному коду ресурса (URI), например.htmlфайла ms-appdata:///local/ folder/ и.htmlфайла ms-appdata:///temp/ folder/. (Подробнее о загрузке сжатых или зашифрованных файлов см. в разделе NavigateToLocalStreamUri.)

Каждая из этих вложенных папок первого уровня изолирована от содержимого других вложенных папок первого уровня. Например, вы можете перейти к ms-appdata:///temp/folder1/file.html, но в этом файле не может быть ссылки на ms-appdata:///temp/folder2/file.html. Однако вы по-прежнему можете ссылаться на HTML-содержимое в пакете приложения с помощью схемы ms-appx-web и веб-содержимое с помощью схем http и https Uniform Resource Identifier (URI).

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

Для загрузки содержимого из пакета приложения используйте метод Navigate с Uri, который использует схему ms-appx-web.

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

Локальное содержимое можно загрузить с помощью пользовательского сопоставителя, используя метод NavigateToLocalStreamUri. Это позволяет выполнять сложные сценарии, например скачивание и кэширование веб-содержимого для использования в автономном режиме или извлечение содержимого из сжатого файла.

Реакция на события навигации

WebView предоставляет несколько событий, которые можно использовать для реагирования на состояния навигации и загрузки содержимого. События происходят в следующем порядке для корневого содержимого WebView:

  • NavigationStarting — происходит до того, как WebView перейдет к новому содержимому. Вы можете отменить навигацию в обработчике для этого события, задав свойству WebViewNavigationStartingEventArgs.Cancel значение true.
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 — происходит, когда WebView начинает загрузку нового содержимого.
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 — происходит, когда WebView завершает анализ текущего HTML-содержимого.
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";
    }
}
  • NavigationCompleted — происходит, когда WebView завершает загрузку текущего содержимого или если навигация завершилась сбоем. Чтобы определить результат навигации, проверьте свойства IsSuccess и WebErrorStatus класса WebViewNavigationCompletedEventArgs.
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:

  • FrameNavigationStarting — происходит до того, как кадр в WebView перейдет к новому содержимому.
  • FrameContentLoading — происходит, когда кадр в WebView начал загружать новое содержимое.
  • FrameDOMContentLoaded — происходит, когда кадр в WebView завершил анализ текущего HTML-содержимого.
  • FrameNavigationCompleted — происходит, когда кадр в WebView завершает загрузку содержимого.

Реакция на потенциальные проблемы

Вы можете реагировать на потенциальные проблемы с содержимым, такие как длительные скрипты, содержимое, которое не удается загрузить WebView, и предупреждения о небезопасном содержимом.

Ваше приложение может перестать отвечать на действия пользователя, когда выполняются скрипты. Событие LongRunningScriptDetected периодически возникает, когда WebView выполняет JavaScript и предоставляет возможность прервать выполнение скрипта. Чтобы определить, как долго выполняется сценарий, проверьте свойство ExecutionTime элемента WebViewLongRunningScriptDetectedEventArgs. Чтобы остановить сценарий, задайте свойству аргументов событий StopPageScriptExecution значение true. Остановленный скрипт не будет выполняться повторно, если он не будет перезагружен во время последующей навигации WebView.

Элемент управления WebView не может размещать произвольные типы файлов. При попытке загрузить содержимое, которое webView не может разместить, возникает событие UnviewableContentIdentified . Вы можете обработать такое событие и уведомить пользователя или использовать класс Launcher, чтобы перенаправить файл во внешний браузер или другое приложение.

Аналогичным образом событие UnsupportedUriSchemeIdentified возникает, когда в веб-содержимом вызывается не поддерживаемая схема URI, например fbconnect:// или mailto://. Это событие можно обработать для предоставления пользовательского поведения вместо того, чтобы разрешить средству запуска системы по умолчанию универсальный код ресурса (URI).

Событие UnsafeContentWarningDisplaying возникает, когда в WebView отображается страница с предупреждением о содержимом, которое было указано фильтром SmartScreen как небезопасное. Если пользователь решает продолжить навигацию, при последующем переходе на страницу не будет отображаться предупреждение или вызываться событие.

Обработка особых случаев для содержимого WebView

Свойство ContainsFullScreenElement и событие ContainsFullScreenElementChanged можно использовать для обнаружения, ответа и включения полноэкранного режима в веб-содержимом, например, воспроизведение видео в полноэкранном режиме. Например, вы можете использовать событие ContainsFullScreenElementChanged , чтобы изменить размер WebView, чтобы занять все представление приложения, или, как показано в следующем примере, переведите оконное приложение в полноэкранный режим, когда требуется полноэкранный веб-интерфейс.

// 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, чтобы включить веб-функции, которые требуют специальных возможностей. Сейчас эти функции включают в себя геолокацию, хранилище 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();
    }
}

Если вашему приложению требуется пользовательский ввод или другие асинхронные операции, чтобы ответить на запрос разрешения, используйте метод Defer функции WebViewPermissionRequest, чтобы создать событие WebViewDeferredPermissionRequest, которое может быть выполнено позднее. См. в разделе WebViewPermissionRequest.Defer.

Если пользователи должны безопасно выйти из веб-сайта, размещенного в WebView, или в других случаях, когда важна безопасность, вызовите статический метод ClearTemporaryWebDataAsync , чтобы очистить все локально кэшированное содержимое из сеанса WebView. Это предотвратит доступ злоумышленников к конфиденциальным данным.

Взаимодействие с содержимым WebView

Вы можете взаимодействовать с содержимым WebView с помощью метода InvokeScriptAsync для вызова или внедрения скрипта в содержимое WebView, а также события ScriptNotify для получения сведений из содержимого WebView.

Чтобы вызвать JavaScript внутри содержимого WebView, используйте метод InvokeScriptAsync . Вызванный скрипт может возвращать только строковые значения.

Например, если содержимое WebView webViewA содержит функцию с именем setDate , которая принимает 3 параметра, ее можно вызвать следующим образом.

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

Можно использовать InvokeScriptAsync с функцией JavaScript eval, чтобы внедрить содержимое в веб-страницу.

Здесь текст xaml TextBox (nameTextBox.Text) записывается в div на HTML-странице, размещенной в 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 });
}

Скрипты в содержимом WebView могут использовать window.external.notify со строковым параметром для отправки сведений обратно в приложение. Для получения этих сообщений обработайте событие ScriptNotify.

Чтобы включить внешнюю веб-страницу для запуска события ScriptNotify при вызове window.external.notify, необходимо включить универсальный код ресурса (URI) страницы в раздел ApplicationContentUriRules манифеста приложения. (Это можно сделать в Microsoft Visual Studio на вкладке URI содержимого конструктора Package.appxmanifest.) URI в этом списке должны использовать протокол HTTPS и могут содержать подстановочные знаки поддоменов (например, https://.microsoft.com), но они не могут содержать подстановочные знаки домена (например, https://.com и https://.). Требования манифеста не применяются к содержимому, которое поступает из пакета приложения, использует URI ms-local-stream:// или загружается с помощью метода NavigateToString.

Доступ к среда выполнения Windows в WebView

Начиная с Windows 10, вы можете использовать метод AddWebAllowedObject для внедрения экземпляра собственного класса из компонента среда выполнения Windows в контекст JavaScript WebView. Это обеспечивает полный доступ к собственным методам, свойствам и событиям этого объекта в содержимом JavaScript этого WebView. Этот класс должен быть помечен атрибутом AllowForWeb.

Например, этот код внедряет экземпляр MyClass импорта из компонента среда выполнения Windows в WebView.

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

Дополнительные сведения см. в разделе WebView.AddWebAllowedObject.

Кроме того, доверенному содержимому JavaScript в WebView можно разрешить прямой доступ к среде выполнения WindowsAPI. Это предоставляет мощные собственные возможности для веб-приложений, размещенных в WebView. Чтобы включить эту функцию, универсальный код ресурса (URI) для доверенного содержимого необходимо добавить в список разрешений в ApplicationContentUriRules приложения в Package.appxmanifest, а для 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, вы можете использовать свойство WebView.Settings (типа WebViewSettings), чтобы управлять включением JavaScript и IndexedDB. Например, если вы используете WebView для отображения строго статического содержимого, может потребоваться отключить JavaScript для оптимальной производительности.

Запись содержимого WebView

Чтобы включить общий доступ к содержимому WebView с другими приложениями, используйте метод CaptureSelectedContentToDataPackageAsync , который возвращает выбранное содержимое в виде DataPackage. Это асинхронный метод, поэтому следует использовать задержку, чтобы предотвратить возврат обработчика событий DataRequested до завершения асинхронного вызова.

Чтобы получить предварительное изображение текущего содержимого WebView, используйте метод CapturePreviewToStreamAsync . Этот метод создает образ с текущим содержимым и записывает его в указанный поток.

Режимы выполнения

По умолчанию содержимое WebView размещается в потоке пользовательского интерфейса на устройствах в семействе настольных устройств и вне потока пользовательского интерфейса на всех других устройствах. Статическое свойство WebView.DefaultExecutionMode можно использовать для запроса поведения потока по умолчанию для текущего клиента. При необходимости можно использовать конструктор WebView(WebViewExecutionMode), чтобы переопределить это поведение.

Поддерживаемые значения WebViewExecutionMode :

  • SameThread — содержимое WebView размещается в потоке пользовательского интерфейса.
  • SeparateThread — содержимое WebView размещается в отдельном потоке вне потока пользовательского интерфейса.
  • SeparateProcess — (Windows 10 версии 1803 или более поздней) Содержимое WebView размещается в отдельном процессе вне процесса приложения. Все экземпляры WebView приложения используют один и тот же отдельный процесс. Отдельный процесс не существует для каждого экземпляра WebView.

При выполнении в отдельном процессе WebView демонстрирует две различия в поведении:

  • Процесс WebView может завершиться. Вы можете получить уведомление об этом, прослушивая событие SeparateProcessLost .
  • Процесс WebView может асинхронно отклонять фокус клавиатуры. В этом случае метод WebView.Focus возвращает значение true, а затем сразу (но асинхронно) фокус перемещается от WebView. (Другие способы перемещения фокуса ведут себя аналогично, например FocusManager.TryMoveFocus.) Это можно отслеживать более явно с помощью API FocusManager.TryFocusAsync или FocusManager.TryMoveFocusAsync .

В этом примере показано, как создать элемент управления 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;
        };
    }
}

Примечание

При размещении содержимого в потоке пользовательского интерфейса на мобильных устройствах могут возникать проблемы с производительностью, поэтому обязательно протестируйте на всех целевых устройствах при изменении DefaultExecutionMode.

Веб-представление, в котором размещается содержимое вне потока пользовательского интерфейса, несовместимо с родительскими элементами управления, требующими передачи жестов из элемента управления WebView в родительский элемент управления, например FlipView, ScrollViewer и другие связанные элементы управления. Эти элементы управления не смогут получать жесты, инициированные в веб-представлении вне потока. Кроме того, вывод веб-содержимого вне потока напрямую не поддерживается. Вместо этого необходимо выводить элемент с заполнением WebViewBrush.

Поведение фокусировки для WebView в отдельном процессе

Независимо от того, выполняется ли процесс приложения или отдельный процесс, вы можете настроить фокус на WebView, вызвав метод WebView.Focus. Это эквивалентно методам Control.Focus и Hyperlink.Focus (обратите внимание, что WebView не является производным от Control).

Аналогичным образом, несколько методов класса FocusManager могут влиять на WebView (или Control или Hyperlink): TryMoveFocus, FindNextFocusableElement, FindLastFocusableElement и GetFocusedElement. Например, TryMoveFocus перемещает фокус на WebView, а GetFocusedElement возвращает WebView с фокусом.

Наконец, при перемещении фокуса в WebView или из нее возникают события фокуса, как на самом веб-представлении, так и на элементе, который теряет или получает фокус. События: LostFocus, LostFocus, GettingFocus и GotFocus. Например, при перемещении фокуса из элемента Управления в WebView возникают события LostFocus и LostFocus, а WebView — события GettingFocus и GotFocus.

Если WebView выполняется в отдельном процессе, поведение этих API немного меняется. При условии, что WebView является фокусируемым, метод WebView.Focus вернет значение true (успешно), но фокус еще не перемещен. То же самое верно, если вместо метода WebView.Focus вызывается FocusManager.TryMoveFocus и он определяет WebView в качестве следующего элемента фокусировки.

Различия в поведении:

  • FocusManager.GetFocusedElement не возвращает WebView до завершения асинхронной операции.
  • Элемент управления, который теряет фокус, получит событие LosingFocus синхронно; Однако он не получит LostFocus, если не завершится асинхронная операция.
  • Аналогичным образом событие GettingFocus будет происходить в WebView синхронно; однако событие GotFocus не будет вызываться до завершения асинхронной операции.

При вызове FocusManager.TryFocusAsync это не изменится. Однако асинхронный метод позволяет определить, успешно ли выполнено изменение фокуса.

Вызов FocusManager.TryMoveFocusAsync для элемента, отличного от WebView, в отдельном процессе завершится синхронно.

В этом примере показано, как переместить фокус на следующий логический элемент, но если это не удается, восстановите фокус в исходном расположении.

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). Однако это может работать не для каждого сценария.

Перехват оповещений JavaScript в WebView в примере универсальных приложений для Windows

Примечания для предыдущих версий

Windows 8.1

Следующие API WebView являются устаревшими в Windows 8.1:

Только в Windows можно обработать событие UnsafeContentWarningDisplaying . Это событие возникает, когда WebView отображает страницу предупреждений для содержимого, которое было указано фильтром SmartScreen как небезопасное. Если пользователь решает продолжить навигацию, при последующем переходе на страницу не будет отображаться предупреждение или вызываться событие. Это событие не реализовано для Windows Phone.

При вызове JavaScript в WebView путем вызова метода InvokeScriptAsync функции, для которых требуется дополнительное окно, например Оповещение, не поддерживаются.

Windows Phone 8

  • WebView в Windows Phone 8.1 несовместим с родительскими элементами управления, которые требуют, чтобы жесты распространялись из элемента управления WebView в родительский элемент управления, например FlipView, класс ScrollViewer и другие связанные элементы управления.
  • WebView в Windows Phone 8.1 включает свойство ContainsFullScreenElement и событие ContainsFullScreenElementChanged. Эти элементы недоступны в Windows.

Событие UnsafeContentWarningDisplaying не реализовано для Windows Phone до Windows 10.

Windows 8

Эти замечания относятся только к приложениям, скомпилированным для Windows 8, даже если они работают на Windows 8.1 или более поздней версии.

В Windows 8 WebView имеет ту характеристику, что другие области пользовательского интерфейса, такие как элементы управления, не могут быть отрисованы поверх WebView. Эта "проблема с воздушным пространством" связана с тем, как обрабатываются внутренние области окна, в частности, как обрабатываются события ввода и как рисуется экран. Если вы хотите отобразить HTML-содержимое, а также разместить другие элементы пользовательского интерфейса поверх этого HTML-содержимого, следует использовать WebViewBrush в качестве области отрисовки. WebView по-прежнему предоставляет сведения об источнике HTML, и вы ссылаетесь на этот WebView через свойство SourceName . WebViewBrush не имеет этого ограничения на наложение.

Если вы хотите отобразить интерактивное представление WebView, которое только иногда содержит перекрывающееся содержимое (например, раскрывающийся список или панель приложения), при необходимости можно временно скрыть элемент управления WebView, заменив его элементом с помощью заливки WebViewBrush . Затем, когда перекрывающееся содержимое больше не присутствует, можно снова отобразить исходное представление WebView.

Примечание

Проблема с воздушным пространством устранена, начиная с Windows 8.1 и не применяется к приложениям, предназначенным для Windows 8.1 или Windows 10.

WebView всегда использует Интернет Обозреватель 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

Возвращает тему пользовательского интерфейса, которая в настоящее время используется элементом , которая может отличаться от RequestedTheme.

(Унаследовано от FrameworkElement)
ActualWidth

Возвращает ширину отображаемого элемента FrameworkElement. См. заметки.

(Унаследовано от FrameworkElement)
AllowDrop

Возвращает или задает значение, определяющее, может ли этот элемент UIElement быть целевым объектом перетаскивания для операций перетаскивания.

(Унаследовано от UIElement)
AllowedScriptNotifyUris

Примечание

AllowedScriptNotifyUris не поддерживается в приложениях, скомпилированных для Windows 8.1. Вместо этого обновите раздел ApplicationContentUriRules манифеста приложения. Дополнительные сведения см. в разделе Примечания.

Возвращает или задает список безопасных URI, которым разрешено запускать события ScriptNotify в этом веб-представлении.

AllowedScriptNotifyUrisProperty

Примечание

AllowedScriptNotifyUrisProperty не поддерживается в приложениях, скомпилированных для Windows 8.1. Вместо этого обновите раздел ApplicationContentUriRules манифеста приложения. Дополнительные сведения см. в разделе Примечания.

Определяет свойство зависимости AllowedScriptNotifyUris .

AllowFocusOnInteraction

Возвращает или задает значение, указывающее, получает ли элемент автоматически фокус при взаимодействии с ним.

(Унаследовано от FrameworkElement)
AllowFocusWhenDisabled

Возвращает или задает значение, указывающее, может ли отключенный элемент управления получать фокус.

(Унаследовано от FrameworkElement)
AnyScriptNotifyUri

Примечание

AnyScriptNotifyUri не поддерживается в приложениях, скомпилированных для Windows 8.1. Вместо этого обновите раздел ApplicationContentUriRules манифеста приложения. Дополнительные сведения см. в разделе Примечания.

Получает значение, которое можно использовать для задания свойства AllowedScriptNotifyUris , чтобы указать, что любая страница может запускать события ScriptNotify в этом веб-представлении.

BaseUri

Возвращает универсальный код ресурса (URI), представляющий базовый универсальный код ресурса (URI) для созданного на языке XAML объекта во время загрузки XAML. Это свойство полезно для разрешения универсального кода ресурса (URI) во время выполнения.

(Унаследовано от FrameworkElement)
CacheMode

Возвращает или задает значение, указывающее, что отображаемое содержимое должно кэшироваться в виде составного растрового изображения, если это возможно.

(Унаследовано от UIElement)
CanBeScrollAnchor

Возвращает или задает значение, указывающее, может ли UIElement быть кандидатом для привязки прокрутки.

(Унаследовано от UIElement)
CanDrag

Возвращает или задает значение, указывающее, можно ли перетаскивать элемент как данные в операции перетаскивания.

(Унаследовано от UIElement)
CanGoBack

Возвращает значение, указывающее, существует ли хотя бы одна страница в журнале навигации в обратном направлении.

CanGoBackProperty

Идентифицирует свойство зависимостей CanGoBack .

CanGoForward

Возвращает значение, указывающее, есть ли хотя бы одна страница в журнале навигации вперед.

CanGoForwardProperty

Определяет свойство зависимости CanGoForward .

CenterPoint

Возвращает или задает центральную точку элемента, то есть точку, относительно которой происходит поворот или масштабирование. Влияет на позицию отрисовки элемента.

(Унаследовано от UIElement)
Clip

Возвращает или задает объект RectangleGeometry, используемый для определения контура содержимого элемента UIElement.

(Унаследовано от UIElement)
CompositeMode

Возвращает или задает свойство, объявляющее альтернативные режимы композиции и смешивания для элемента в родительском макете и окне. Это относится к элементам, участвующим в смешанном пользовательском интерфейсе XAML/Microsoft DirectX.

(Унаследовано от UIElement)
ContainsFullScreenElement

Возвращает значение, указывающее, содержит ли WebView элемент, поддерживающий полноэкранный режим.

ContainsFullScreenElementProperty

Определяет свойство зависимости ContainsFullScreenElement .

ContextFlyout

Возвращает или задает всплывающий элемент, связанный с этим элементом.

(Унаследовано от UIElement)
DataContext

Возвращает или задает контекст данных для Объекта FrameworkElement. Контекст данных часто используется, когда FrameworkElement использует расширение разметки {Binding} и участвует в привязке данных.

(Унаследовано от FrameworkElement)
DataTransferPackage

Примечание

DataTransferPackage может быть изменен или недоступен для выпусков после Windows 8.1. Вместо этого используйте CaptureSelectedContentToDataPackageAsync.

Возвращает буфер обмена DataPackage , передаваемый в WebView.

DataTransferPackageProperty

Примечание

DataTransferPackageProperty может быть изменен или недоступен для выпусков после Windows 8.1. Вместо этого используйте CaptureSelectedContentToDataPackageAsync.

Определяет свойство зависимости DataTransferPackage .

DefaultBackgroundColor

Возвращает или задает цвет, используемый в качестве фона WebView , если html-содержимое не указывает цвет.

DefaultBackgroundColorProperty

Определяет свойство зависимости DefaultBackgroundColor .

DefaultExecutionMode

Возвращает поведение потоков по умолчанию для экземпляров WebView в текущем приложении.

DeferredPermissionRequests

Возвращает коллекцию запросов разрешений, ожидающих предоставления или отклонения.

DesiredSize

Возвращает размер, вычисленный этим элементом UIElement во время прохождения меры процесса макета.

(Унаследовано от UIElement)
Dispatcher

Возвращает CoreDispatcher , с которым связан этот объект. CoreDispatcher представляет средство, которое может получить доступ к DependencyObject в потоке пользовательского интерфейса, даже если код инициируется потоком, не относящегося к пользовательскому интерфейсу.

(Унаследовано от DependencyObject)
DocumentTitle

Возвращает заголовок страницы, отображаемой в веб-представлении.

DocumentTitleProperty

Определяет свойство зависимости DocumentTitle .

ExecutionMode

Возвращает значение, указывающее, размещается ли в WebView содержимое в потоке пользовательского интерфейса или в потоке, отличном от пользовательского интерфейса.

ExitDisplayModeOnAccessKeyInvoked

Возвращает или задает значение, указывающее, закрывается ли отображение ключа доступа при вызове ключа доступа.

(Унаследовано от UIElement)
FlowDirection

Возвращает или задает направление потока текста и других элементов пользовательского интерфейса в любом родительском элементе, управляющего их макетом. Этому свойству можно задать значение LeftToRight или RightToLeft. Для параметра FlowDirection значение RightToLeft для любого элемента устанавливается выравнивание справа, порядок чтения — справа налево, а макет элемента управления — справа налево.

(Унаследовано от FrameworkElement)
FocusVisualMargin

Возвращает или задает внешнее поле визуального элемента фокуса для FrameworkElement.

(Унаследовано от FrameworkElement)
FocusVisualPrimaryBrush

Получает или задает кисть, используемую для рисования внешней границы визуального HighVisibility элемента или Reveal фокуса для FrameworkElement.

(Унаследовано от FrameworkElement)
FocusVisualPrimaryThickness

Возвращает или задает толщину внешней границы визуального элемента или Reveal фокуса HighVisibility для FrameworkElement.

(Унаследовано от FrameworkElement)
FocusVisualSecondaryBrush

Получает или задает кисть, используемую для рисования внутренней границы визуального HighVisibility элемента или Reveal фокуса для FrameworkElement.

(Унаследовано от FrameworkElement)
FocusVisualSecondaryThickness

Возвращает или задает толщину внутренней границы визуального элемента или Reveal фокуса HighVisibility для FrameworkElement.

(Унаследовано от FrameworkElement)
Height

Возвращает или задает предполагаемую высоту элемента FrameworkElement.

(Унаследовано от FrameworkElement)
HighContrastAdjustment

Возвращает или задает значение, указывающее, настраивает ли платформа автоматически визуальные свойства элемента при включении тем с высокой контрастностью.

(Унаследовано от UIElement)
HorizontalAlignment

Возвращает или задает характеристики горизонтального выравнивания, применяемые к Объекту FrameworkElement при его создании в родительском элементе макета, например панели или элемента управления элементами.

(Унаследовано от FrameworkElement)
IsAccessKeyScope

Возвращает или задает значение, указывающее, определяет ли элемент собственный ключ доступа область.

(Унаследовано от UIElement)
IsDoubleTapEnabled

Возвращает или задает значение, определяющее, может ли событие DoubleTapped исходить из этого элемента.

(Унаследовано от UIElement)
IsHitTestVisible

Возвращает или задает значение, указывающее, может ли автономная область этого элемента UIElement возвращать истинные значения для проверки попадания.

(Унаследовано от 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

Возвращает или задает значение, указывающее, насколько далеко находится подсказка клавиши относительно элемента пользовательского интерфейса.

(Унаследовано от UIElement)
Language

Возвращает или задает сведения о языке локализации и глобализации, которые применяются к Объекту FrameworkElement, а также ко всем дочерним элементам текущего FrameworkElement в представлении объекта и в пользовательском интерфейсе.

(Унаследовано от FrameworkElement)
Lights

Возвращает коллекцию объектов XamlLight, присоединенных к этому элементу.

(Унаследовано от UIElement)
ManipulationMode

Возвращает или задает значение ManipulationModes , используемое для поведения UIElement и взаимодействия с жестами. Установка этого значения позволяет обрабатывать события манипуляции из этого элемента в коде приложения.

(Унаследовано от 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

Возвращает набор всех захваченных указателей, представленных в виде значений указателя .

(Унаследовано от UIElement)
Projection

Возвращает или задает проекцию перспективы (трехмерный эффект), применяемую при отрисовке этого элемента.

(Унаследовано от UIElement)
RenderSize

Возвращает окончательный размер отрисовки элемента UIElement. Использовать не рекомендуется. См. примечания.

(Унаследовано от UIElement)
RenderTransform

Возвращает или задает сведения о преобразовании, влияющие на положение отрисовки элемента UIElement.

(Унаследовано от UIElement)
RenderTransformOrigin

Возвращает или задает точку начала любого возможного преобразования отрисовки, объявленного RenderTransform, относительно границ UIElement.

(Унаследовано от UIElement)
RequestedTheme

Возвращает или задает тему пользовательского интерфейса, используемую uiElement (и его дочерними элементами) для определения ресурса. Тема пользовательского интерфейса, указанная в параметре RequestedTheme, может переопределить requestedTheme на уровне приложения.

(Унаследовано от FrameworkElement)
Resources

Возвращает локально определенный словарь ресурсов. В XAML элементы ресурсов можно установить в качестве дочерних элементов объекта элемента свойства с помощью синтаксиса frameworkElement.Resources неявной коллекции XAML.

(Унаследовано от FrameworkElement)
Rotation

Возвращает или задает угол поворота по часовой стрелке в градусах. Поворачивается относительно RotationAxis и CenterPoint. Влияет на позицию отрисовки элемента.

(Унаследовано от UIElement)
RotationAxis

Возвращает или задает ось для поворота элемента вокруг.

(Унаследовано от UIElement)
RotationTransition

Возвращает или задает scalarTransition, который анимирует изменения в свойстве Rotation.

(Унаследовано от UIElement)
Scale

Возвращает или задает масштаб элемента. Масштабируется относительно элемента CenterPoint. Влияет на позицию отрисовки элемента.

(Унаследовано от UIElement)
ScaleTransition

Возвращает или задает объект Vector3Transition, который анимирует изменения в свойстве Scale.

(Унаследовано от UIElement)
Settings

Возвращает объект WebViewSettings , содержащий свойства для включения или отключения функций WebView .

Shadow

Возвращает или задает эффект тени, отбрасываемый элементом .

(Унаследовано от UIElement)
Source

Возвращает или задает источник универсального кода ресурса (URI) html-содержимого, отображаемого в элементе управления WebView .

SourceProperty

Идентифицирует свойство зависимостей источника .

Style

Возвращает или задает стиль экземпляра, который применяется к этому объекту во время макета и отрисовки.

(Унаследовано от FrameworkElement)
TabFocusNavigation

Возвращает или задает значение, изменяющее работу tabbing и TabIndex для этого элемента управления.

(Унаследовано от UIElement)
Tag

Возвращает или задает произвольное значение объекта, которое можно использовать для хранения пользовательских сведений об этом объекте.

(Унаследовано от FrameworkElement)
Transform3D

Возвращает или задает эффект трехмерного преобразования, применяемый при отрисовке этого элемента.

(Унаследовано от UIElement)
TransformMatrix

Возвращает или задает матрицу преобразования, применяемую к элементу .

(Унаследовано от UIElement)
Transitions

Возвращает или задает коллекцию элементов стиля Перехода , которые применяются к UIElement.

(Унаследовано от 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-pad) вниз.

XYFocusDownNavigationStrategy

Возвращает или задает значение, указывающее стратегию, используемую для определения целевого элемента навигации вниз.

(Унаследовано от UIElement)
XYFocusDownProperty

Определяет свойство зависимости XYFocusDown .

XYFocusKeyboardNavigation

Возвращает или задает значение, которое включает или отключает навигацию с помощью стрелки направления клавиатуры.

(Унаследовано от UIElement)
XYFocusLeft

Возвращает или задает объект, который получает фокус, когда пользователь нажимает панель направления (D-pad) влево.

XYFocusLeftNavigationStrategy

Возвращает или задает значение, указывающее стратегию, используемую для определения целевого элемента левой навигации.

(Унаследовано от UIElement)
XYFocusLeftProperty

Определяет свойство зависимостей XYFocusLeft .

XYFocusRight

Возвращает или задает объект, который получает фокус, когда пользователь нажимает кнопку "Панель направления" (D-pad) вправо.

XYFocusRightNavigationStrategy

Возвращает или задает значение, указывающее стратегию, используемую для определения целевого элемента правильной навигации.

(Унаследовано от UIElement)
XYFocusRightProperty

Определяет свойство зависимости XYFocusRight .

XYFocusUp

Возвращает или задает объект, который получает фокус при нажатии пользователем направленной панели (D-pad).

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)

Создает универсальный код ресурса (URI), который можно передать в NavigateToLocalStreamUri.

CancelDirectManipulations()

Отменяет текущую обработку прямых манипуляций (системное сдвига или масштабирование) в любом родительском элементе ScrollViewer , содержающем текущий элемент UIElement.

(Унаследовано от 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[])

Примечание

InvokeScript может быть изменен или недоступен для выпусков после Windows 8.1. Вместо этого используйте InvokeScriptAsync.

Выполняет указанную функцию скрипта из загруженного в данный момент HTML-кода с определенными аргументами.

InvokeScriptAsync(String, IIterable<String>)

Выполняет указанную функцию скрипта из текущего загруженного HTML-кода с определенными аргументами в качестве асинхронного действия.

Measure(Size)

Обновления DesiredSizeэлемента UIElement. Как правило, объекты, реализующие пользовательский макет для дочерних элементов макета, вызывают этот метод из собственных реализаций MeasureOverride , чтобы сформировать рекурсивное обновление макета.

(Унаследовано от UIElement)
MeasureOverride(Size)

Обеспечивает поведение для прохода "Measure" цикла макета. Классы могут переопределить этот метод, чтобы определить собственное поведение передачи "Measure".

(Унаследовано от FrameworkElement)
Navigate(Uri)

Загружает html-содержимое по указанному универсальному коду ресурса (URI).

NavigateToLocalStreamUri(Uri, IUriToStreamResolver)

Загружает локальное веб-содержимое по указанному универсальному коду ресурса (URI) с помощью IUriToStreamResolver.

NavigateToString(String)

Загружает указанное содержимое HTML в качестве нового документа.

NavigateWithHttpRequestMessage(HttpRequestMessage)

Перемещает WebView к универсальному коду ресурса (URI) с запросом POST и заголовками HTTP.

OnApplyTemplate()

Вызывается всякий раз, когда код приложения или внутренние процессы (такие как перестроение передачи макета) вызывают Метод ApplyTemplate. Проще говоря, это означает, что метод вызывается непосредственно перед отображением элемента пользовательского интерфейса в приложении. Переопределите этот метод, чтобы повлиять на логику post-template по умолчанию класса.

(Унаследовано от FrameworkElement)
OnBringIntoViewRequested(BringIntoViewRequestedEventArgs)

Вызывается перед событием BringIntoViewRequested .

(Унаследовано от UIElement)
OnCreateAutomationPeer()

При реализации в производном классе возвращает реализации 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)

Регистрирует функцию уведомления для прослушивания изменений определенной DependencyProperty в этом экземпляре DependencyObject .

(Унаследовано от 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

Происходит при изменении состояния веб-представления о том, содержит ли веб-представление в данный момент полноэкранный элемент.

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

Примечание

NavigationFailed может быть изменена или недоступна для выпусков после Windows 8.1. Вместо этого используйте NavigationCompleted.

Происходит, когда WebView не может завершить попытку навигации.

NavigationStarting

Происходит перед переходом WebView к новому содержимому.

NewWindowRequested

Происходит, когда пользователь выполняет действие в WebView , которое приводит к открытию содержимого в новом окне.

NoFocusCandidateFound

Происходит, когда пользователь пытается переместить фокус (с помощью табуляции или стрелки направления), но фокус не перемещается, так как в направлении перемещения не найден кандидат фокуса.

(Унаследовано от UIElement)
PermissionRequested

Происходит, когда действие в WebView требует предоставления разрешения.

PointerCanceled

Происходит, когда указатель, создающий контакт, теряет контакт.

(Унаследовано от UIElement)
PointerCaptureLost

Происходит, когда захват указателя, ранее удерживаемый этим элементом, перемещается в другой элемент или в другое место.

(Унаследовано от UIElement)
PointerEntered

Происходит, когда указатель входит в область проверки попадания этого элемента.

(Унаследовано от UIElement)
PointerExited

Происходит, когда указатель покидает область проверки попадания этого элемента.

(Унаследовано от UIElement)
PointerMoved

Происходит при перемещении указателя, в то время как указатель остается в области проверки попадания этого элемента.

(Унаследовано от UIElement)
PointerPressed

Происходит, когда указатель инициирует действие Нажатие в этом элементе.

(Унаследовано от UIElement)
PointerReleased

Происходит при освобождении устройства указателя, которое ранее инициировало действие Нажатие , в этом элементе. Обратите внимание, что окончание действия Нажатие не гарантирует срабатывание события PointerReleased. Вместо этого могут возникать другие события. Дополнительные сведения см. в разделе Примечания.

(Унаследовано от UIElement)
PointerWheelChanged

Происходит при изменении разностного значения колесика указателя.

(Унаследовано от UIElement)
PreviewKeyDown

Происходит при нажатии клавиши клавиатуры, когда элемент UIElement находится в фокусе.

(Унаследовано от UIElement)
PreviewKeyUp

Происходит при отпускание клавиши клавиатуры, когда элемент UIElement находится в фокусе.

(Унаследовано от UIElement)
ProcessKeyboardAccelerators

Происходит при нажатии сочетания клавиш (или сочетания клавиш).

(Унаследовано от UIElement)
RightTapped

Возникает при возникновении стимула ввода правой кнопкой касания, когда указатель находится над элементом.

(Унаследовано от UIElement)
ScriptNotify

Происходит, когда содержимое, содержащееся в элементе управления WebView , передает строку в приложение с помощью JavaScript.

SeparateProcessLost

Происходит при запуске WebView с executionModeобъекта SeparateProcess и потере отдельного процесса.

SizeChanged

Происходит при изменении значения свойства ActualHeight или ActualWidth в FrameworkElement.

(Унаследовано от FrameworkElement)
Tapped

Происходит, когда в противном случае происходит необработанное взаимодействие касания в области проверки попадания этого элемента.

(Унаследовано от UIElement)
Unloaded

Происходит, когда этот объект больше не подключен к дереву объектов main.

(Унаследовано от FrameworkElement)
UnsafeContentWarningDisplaying

Происходит, когда WebView отображает страницу предупреждений для содержимого, которое было признано небезопасным фильтром SmartScreen.

UnsupportedUriSchemeIdentified

Происходит при попытке перейти к универсальному коду ресурса (URI) с помощью схемы, которую WebView не поддерживает.

UnviewableContentIdentified

Происходит при попытке WebView скачать неподдерживаемый файл.

WebResourceRequested

Происходит при выполнении HTTP-запроса.

Применяется к

См. также раздел