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 .../>
- Наследование
- Атрибуты
Требования к 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:
- LoadCompleted и NavigationFailed. Вместо этого используйте NavigationCompleted .
- InvokeScript. Вместо этого используйте InvokeScriptAsync .
- DataTransferPackage и DataTransferPackageProperty. Вместо этого используйте CaptureSelectedContentToDataPackageAsync .
- AllowedScriptNotifyUris, AnyScriptNotifyUri и AllowedScriptNotifyUrisProperty. Включите URI страницы в раздел ApplicationContentUriRules манифеста приложения.
Только в 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 |
Получает или задает кисть, используемую для рисования внешней границы визуального |
FocusVisualPrimaryThickness |
Возвращает или задает толщину внешней границы визуального элемента или |
FocusVisualSecondaryBrush |
Получает или задает кисть, используемую для рисования внутренней границы визуального |
FocusVisualSecondaryThickness |
Возвращает или задает толщину внутренней границы визуального элемента или |
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 |
Возвращает коллекцию сочетаний клавиш, которые вызывают действие с помощью клавиатуры. Ускорители обычно назначаются кнопкам или пунктам меню.
|
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 элементы ресурсов можно установить в качестве дочерних элементов объекта элемента свойства с помощью синтаксиса |
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 |
Возвращает или задает объект , |
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-запроса. |