WebView クラス

定義

アプリで HTML コンテンツをホストするコントロールを提供します。

public ref class WebView sealed : FrameworkElement
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Xaml.Controls.IWebViewFactory4, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class WebView final : FrameworkElement
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Xaml.Controls.IWebViewFactory4, 65536, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class WebView final : FrameworkElement
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Xaml.Controls.IWebViewFactory4), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class WebView : FrameworkElement
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Xaml.Controls.IWebViewFactory4), 65536, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class WebView : FrameworkElement
Public NotInheritable Class WebView
Inherits FrameworkElement
<WebView .../>
継承
Object Platform::Object IInspectable DependencyObject UIElement FrameworkElement WebView
属性

Windows の要件

デバイス ファミリ
Windows 10 (10.0.10240.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)

ヒント

詳細、設計ガイダンス、およびコード例については、「 Web ビュー」を参照してください。

WinUI 2 ギャラリー アプリがインストールされている場合は、ここをクリックしてアプリを開き、WebView の動作を確認してください

次のコード例では、 という名前AddressTextBox に含まれる URI に WebView を移動する方法を示します。

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

次のコード例では、ローカル HTML を WebView コントロールに読み込む方法を示します。

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

注釈

WebView コントロールを使用して、アプリで Web コンテンツをホストします。 Surface Hub または Xbox 用アプリでは、この WebView を使用する必要があります。

重要

デスクトップ アプリの場合は、Windows UI Library 2 for UWP (WinUI 2) の一部として使用できる WebView2 コントロールを使用することをお勧めします。 WebView2 では、Microsoft Edge (Chromium) をレンダリング エンジンとして使用して、アプリに Web コンテンツを表示します。 詳細については、WinUI API リファレンスの 「Microsoft Edge WebView2 の概要」、「 WinUI 2 (UWP) アプリでの WebView2 の概要」、および 「WebView2 」を参照してください。

重要

XAML Islands: このコントロールは、XAML Islands アプリではサポートされていません。 代替手段については、「 XAML Islands - Web ビュー コントロール」を参照してください。

WebView は Control サブクラスでないため、コントロール テンプレートはありません。 WebView の視覚的な側面を制御するために、さまざまなプロパティを設定できます。 表示領域は、 Width プロパティと Height プロパティによって制限されます。 WebView を変換、スケーリング、スキュー、回転するには、 RenderTransform プロパティを使用します。 WebView の不透明度を制御するには、 Opacity プロパティを設定します。 HTML コンテンツが色を指定していないときに、Web ページの背景として色を指定するには、DefaultBackgroundColor プロパティを設定します。

DocumentTitle プロパティを使用すると、WebView に現在表示されている HTML ドキュメントのタイトルを取得できます。

WebView は Control サブクラスではありませんが、キーボード入力フォーカスを受け取り、タブ シーケンスに参加します。 ただし、Focus メソッド、そして GotFocus イベントと LostFocus イベントを提供しますが、タブ関連のプロパティはありません。 タブ順での位置は、XAML ドキュメントの順序での位置と同じです。 タブ シーケンスには、入力フォーカスを受け取ることができる WebView コンテンツ内のすべての要素が含まれます。

イベント テーブルで示されているように、WebView では、KeyDownKeyUpPointerPressed など、UIElement から継承されたほとんどのユーザー入力イベントはサポートされていません。 一般的な回避策は、JavaScript eval 関数と共に InvokeScriptAsync を使用して HTML イベント ハンドラーを使用し、HTML イベント ハンドラーから window.external.notify を使用して WebView.ScriptNotify を使用してアプリケーションに通知することです。

Windows 10用にコンパイルされたアプリでは、WebView は Microsoft Edge レンダリング エンジンを使用して HTML コンテンツを表示します。 Windows 8 または Windows 8.1 用にコンパイルされたアプリでは、WebView はドキュメント モードでインターネット エクスプローラー 11 を使用します。 Microsoft Silverlight やポータブル ドキュメント形式 (PDF) ファイルなどの Microsoft ActiveX コントロールやプラグインはサポートされていません。

WebView には、 GoBackGoForwardStopRefreshCanGoBackCanGoForward という基本的なナビゲーション用の API がいくつか用意されています。 これらを使うと、一般的な Web 閲覧機能をアプリに追加できます。

WebView の初期コンテンツを設定するには、XAML で Source プロパティを設定します。 XAML パーサーは文字列を Uri に自動的に変換します。

<!-- Source file is on the web. -->
<WebView x:Name="webViewA" Source="http://www.contoso.com"/>

<!-- Source file is in local storage. -->
<WebView x:Name="webViewB" Source="ms-appdata:///local/intro/welcome.html"/>

<!-- Source file is in the app package. -->
<WebView x:Name="webViewC" Source="ms-appx-web:///help/about.html"/>

Source プロパティはコードで設定できますが、設定するのではなく、通常、Navigate メソッドのいずれかを使用してコード内のコンテンツを読み込みます。

Web コンテンツを読み込むには、http または https スキームを使用する UriNavigate メソッド使用します。

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

POST 要求と HTTP ヘッダーを使用して Uniform Resource Identifier (URI) に移動するには、 NavigateWithHttpRequestMessage メソッドを使用します。 このメソッドは、HttpRequestMessage.Method プロパティの値として HttpMethod.PostHttpMethod.Get のみをサポートします。

圧縮されておらず、暗号化もされていないコンテンツをアプリの LocalFolder データ ストアまたは TemporaryFolder データ ストアから読み込むには、Navigate メソッドを、ms-appdata スキームを使う Uri と共に用います。 このスキームの WebView サポートでは、ローカルフォルダーまたは一時フォルダーのサブフォルダーにコンテンツを配置する必要があります。 これにより、ms-appdata:///local/ folderファイル.htmlや ms-appdata:///temp/ folder//ファイル.htmlなどの URI (Uniform Resource Identifier) へのナビゲーションが可能になります。 (圧縮され、暗号化されたファイルを読み込む場合は、NavigateToLocalStreamUri に関するページをご覧ください)。

これらの第 1 レベルのサブフォルダーは、他の第 1 レベルのサブフォルダー内のコンテンツから分離されます。 たとえば「ms-appdata:///temp/folder1/file.html」に移動はできますが、このファイル内のリンクに「ms-appdata:///temp/folder2/file.html」は指定できません。 ただし、ms-appx-web スキームを使用してアプリ パッケージ内の HTML コンテンツと、http および https Uniform Resource Identifier (URI) スキームを使用して Web コンテンツにリンクすることはできます。

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

アプリ パッケージからコンテンツを読み込むには、Navigate メソッドを ms-appx-web スキームを使った Uri と共に用います。

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

NavigateToLocalStreamUri メソッドを使えば、カスタム リゾルバーを通じてローカルのコンテンツを読み込めます。 これにより、Web ベースのコンテンツをオフライン用にダウンロードしたりキャッシュしたり、圧縮ファイルからコンテンツを抽出したりといった高度なシナリオも可能です。

ナビゲーション イベントを処理する

WebView には、ナビゲーションとコンテンツの読み込み状態に応答するために使用できるいくつかのイベントが用意されています。 イベントは、ルート WebView コンテンツに対して次の順序で発生します。

webViewA.NavigationStarting += webViewA_NavigationStarting;

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

private void webViewA_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
{
    if (args.IsSuccess == true)
    {
        statusTextBlock.Text = "Navigation to " + args.Uri.ToString() + " completed successfully.";
    }
    else
    {
        statusTextBlock.Text = "Navigation to: " + args.Uri.ToString() +
                               " failed with error " + args.WebErrorStatus.ToString();
    }
}

同様のイベントは、WebView コンテンツ内の iframe ごとに同じ順序で発生します。

  • FrameNavigationStarting - WebView 内のフレームが新しいコンテンツに移動する前に発生します。
  • FrameContentLoading - WebView 内のフレームが新しいコンテンツの読み込みを開始したときに発生します。
  • FrameDOMContentLoaded - WebView 内のフレームが現在の HTML コンテンツの解析を完了したときに発生します。
  • FrameNavigationCompleted - WebView 内のフレームのコンテンツの読み込みが完了したときに発生します。

潜在的な問題に対処する

実行時間の長いスクリプト、WebView で読み込みできないコンテンツ、安全でないコンテンツの警告など、コンテンツに関する潜在的な問題に対応できます。

スクリプトを実行中にアプリが応答しないような場合があったとします。 LongRunningScriptDetected イベントは、WebView が JavaScript を実行している間に定期的に発生し、スクリプトを中断する機会を提供します。 スクリプトがどれくらいの時間実行されているか調べるには、WebViewLongRunningScriptDetectedEventArgsExecutionTime プロパティを確認します。 スクリプトを停止するには、イベント引数の StopPageScriptExecution プロパティを true に設定します。 停止したスクリプトは、後続の WebView ナビゲーション中に再読み込みされない限り、再度実行されません。

WebView コントロールは、任意のファイルの種類をホストできません。 WebView でホストできないコンテンツを読み込もうとすると、 UnviewableContentIdentified イベントが発生します。 このイベントを処理してユーザーに通知することも、Launcher クラスを使ってファイルを外部のブラウザーまたは別のアプリにリダイレクトすることもできます。

同様に、 UnsupportedUriSchemeIdentified イベントは、サポートされていない Uniform Resource Identifier (URI) スキームが、fbconnect:// や mailto:// などの Web コンテンツで呼び出されたときに発生します。 このイベントを処理して、既定のシステム起動ツールで Uniform Resource Identifier (URI) を起動するのではなく、カスタム動作を提供できます。

UnsafeContentWarningDisplaying イベントは、SmartScreen フィルターによって安全でないと報告されたコンテンツの警告ページが WebView に表示されるときに発生します。 ユーザーがナビゲーションの続行を選んだ場合は、そのページへの移動では以降、警告が表示されたり、イベントが発されたりすることはありません。

WebView コンテンツの特殊なケースの処理

ContainsFullScreenElement プロパティと ContainsFullScreenElementChanged イベントを使うと、全画面での動画の再生といった、全画面表示を可能にしたり、検出したり、または処理したりすることができます。 たとえば、 ContainsFullScreenElementChanged イベントを使用して、WebView のサイズを変更してアプリ ビュー全体を占めたり、次の例に示すように、全画面表示 Web エクスペリエンスが必要な場合にウィンドウ化されたアプリを全画面表示モードにしたりできます。

// Assume webView is defined in XAML
webView.ContainsFullScreenElementChanged += webView_ContainsFullScreenElementChanged;

private void webView_ContainsFullScreenElementChanged(WebView sender, object args)
{
    var applicationView = ApplicationView.GetForCurrentView();

    if (sender.ContainsFullScreenElement)
    {
        applicationView.TryEnterFullScreenMode();
    }
    else if (applicationView.IsFullScreenMode)
    {
        applicationView.ExitFullScreenMode();
    }
}

NewWindowRequested イベントを使えば、たとえばポップアップ ウィンドウのように、ホストされている Web コンテンツによって新しいウィンドウの表示が要求されるようなケースに対処できます。 別の WebView コントロールで、要求されたウィンドウのコンテンツを表示することもできます。

特別な機能を必要とする Web 機能を有効にするには、PermissionRequested イベントを使います。 現在、これらには位置情報、IndexedDB ストレージ、ユーザーのオーディオやビデオ (たとえば、マイクまたは Web カメラの機能) があります。 アプリがユーザーの位置情報またはユーザーのメディアにアクセスする場合も、アプリのマニフェストでそうした機能を宣言する必要があります。 たとえば、位置情報を使うアプリでは少なくとも 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();
    }
}

アプリが許可の要求に応答するにあたってユーザーの入力をはじめ非同期の操作を要求する場合は、WebViewPermissionRequestDefer メソッドを使い、後で処理できる WebViewDeferredPermissionRequest を作成します。 WebViewPermissionRequest.Defer に関するページをご覧ください。

ユーザーが WebView でホストされている Web サイトから安全にログアウトする必要がある場合、またはセキュリティが重要な場合は、静的メソッド ClearTemporaryWebDataAsync を呼び出して、WebView セッションからローカルにキャッシュされたすべてのコンテンツをクリアします。 これにより、悪意あるユーザーが重要なデータにアクセスするのを防ぎます。

WebView コンテンツの操作

InvokeScriptAsync メソッドを使用して WebView コンテンツにスクリプトを呼び出すか挿入し、ScriptNotify イベントを使用して WebView コンテンツから情報を取得することで、WebView のコンテンツを操作できます。

WebView コンテンツ内で JavaScript を呼び出すには、 InvokeScriptAsync メソッドを使用します。 呼び出されたスクリプトは、文字列型の値のみを返すことができます。

たとえば、 という名前 webViewA の WebView のコンテンツに、3 つのパラメーターを受け取る という名前 setDate の関数が含まれている場合は、次のように呼び出すことができます。

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

InvokeScriptAsync を JavaScript の eval 関数と共に使って、Web ページにコンテンツを挿入します。

ここでは、XAML TextBox (nameTextBox.Text) のテキストは、 でホストされている HTML ページの div に 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 イベントを処理します。

window.external.notify を呼び出すときに外部 Web ページで ScriptNotify イベントを発生させるには、アプリ マニフェストの ApplicationContentUriRules セクションにページの Uniform Resource Identifier (URI) を含める必要があります。 (これは、Package.appxmanifest デザイナーの [コンテンツ URI] タブの Microsoft Visual Studio で行うことができます)。この一覧の URI は HTTPS を使用する必要があり、サブドメイン ワイルドカード (https://.microsoft.com など) を含めることができますが、ドメイン ワイルドカード (https://.com や https:// など) を含めることはできません。 マニフェスト要件は、アプリ パッケージから生成されたコンテンツには適用されず、ms-local-stream:// URI を使うか、NavigateToString を使って読み込まれるかのいずれかです。

WebView でWindows ランタイムにアクセスする

Windows 10以降では、AddWebAllowedObject メソッドを使用して、Windows ランタイム コンポーネントから WebView の JavaScript コンテキストにネイティブ クラスのインスタンスを挿入できます。 これにより、その WebView の JavaScript コンテンツ内のそのオブジェクトのネイティブ メソッド、プロパティ、およびイベントへのフル アクセスが可能になります。 クラスは、AllowForWeb 属性で修飾される必要があります。

たとえば、このコードは、Windows ランタイム コンポーネントから WebView にインポートされた のMyClassインスタンスを挿入します。

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

詳しくは、WebView.AddWebAllowedObject に関するページをご覧ください。

さらに、WebView の信頼できる JavaScript コンテンツは、Windows RuntimeAPI に直接アクセスできます。 これにより、WebView でホストされる Web アプリの強力なネイティブ機能が提供されます。 この機能を有効にするには、信頼済みコンテンツの Uniform Resource Identifier (URI) を Package.appxmanifest のアプリの ApplicationContentUriRules の許可リストに追加する必要があります。WindowsRuntimeAccess は特に "all" に設定されています。

この例は、アプリ マニフェストのセクションを示しています。 ここでは、ローカルの Uniform Resource Identifier (URI) にWindows ランタイムへのアクセス権が付与されます。

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

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

Web コンテンツのホスティングのオプション

Windows 10以降、WebView.Settings プロパティ (WebViewSettings 型) を使用して、JavaScript と IndexedDB を有効にするかどうかを制御できます。 たとえば、WebView を使用して厳密に静的なコンテンツを表示する場合は、最適なパフォーマンスを得るために JavaScript を無効にすることをお勧めします。

WebView コンテンツのキャプチャ

WebView コンテンツを他のアプリと共有できるようにするには、選択したコンテンツを DataPackage として返す CaptureSelectedContentToDataPackageAsync メソッドを使用します。 このメソッドは非同期であるため、DataRequested イベント ハンドラーが、非同期呼び出しが完了する前に戻されてしまうのを防ぐために、遅延を使用する必要があります。

WebView の現在のコンテンツのプレビュー イメージを取得するには、 CapturePreviewToStreamAsync メソッドを使用します。 このメソッドは、現在のコンテンツのイメージを作成し、指定のストリームに書き込みます。

実行モード

既定では、WebView コンテンツはデスクトップ デバイス ファミリのデバイス上の UI スレッドでホストされ、他のすべてのデバイスの UI スレッドからホストされます。 WebView.DefaultExecutionMode 静的プロパティを使うと、現在のクライアントに対する既定のスレッド処理動作を照会できます。 必要であれば、WebView(WebViewExecutionMode) コンストラクターを使ってその動作をオーバーライドすることもできます。

サポートされている WebViewExecutionMode 値は次のとおりです。

  • SameThread - WebView コンテンツは UI スレッドでホストされます。
  • SeparateThread - WebView コンテンツは、UI スレッドから離れた別のスレッドでホストされます。
  • SeparateProcess - (Windows 10 バージョン 1803 以降) WebView コンテンツは、アプリ プロセスとは別のプロセスでホストされます。 アプリのすべての WebView インスタンスは同じ個別のプロセスを共有しますが、WebView インスタンスごとに個別のプロセスはありません。

別のプロセスで実行する場合、WebView は次の 2 つの動作の違いを生み出します。

  • WebView プロセスが終了する可能性があります。 この通知は、 SeparateProcessLost イベントをリッスンすることで通知できます。
  • WebView プロセスでは、キーボード フォーカスを非同期的に拒否できます。 この場合、WebView.Focus メソッドは true を返し、直ちに (ただし非同期的に) フォーカスを WebView から移動します。 (フォーカスを移動する他の方法 (FocusManager.TryMoveFocus など) も同様に動作します)。これは、 FocusManager.TryFocusAsync または FocusManager.TryMoveFocusAsync API を使用して、より明示的に追跡できます。

この例では、ホスト アプリとは別のプロセスで実行され、別のプロセスが失われた場合に再作成される WebView コントロールを作成する方法を示します。

<Grid>
    <Border x:Name="WebViewBorder" Loaded="WebViewBorder_Loaded" />
</Grid>
    ...

public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();

        var webView = new WebView(WebViewExecutionMode.SeparateProcess);
        WebViewBorder.Child = webView;;

        InitializeWebView(webView);
    }

    void InitializeWebView(WebView webView)
    {
        webView.Source = this.WebViewSourceUri;

        webView.SeparateProcessLost += (sender, e) =>
        {
            var newWebView = new WebView(WebViewExecutionMode.SeparateProcess);
            InitializeWebView(newWebView);
            WebViewBorder.Child = newWebView;
        };
    }
}

注意

モバイル デバイスで UI スレッドでコンテンツをホストするときにパフォーマンスの問題が発生する可能性があるため、 DefaultExecutionMode を変更するときは、必ずすべてのターゲット デバイスでテストしてください。

UI スレッドからコンテンツをホストする WebView は、WebView コントロールから親に伝達するジェスチャを必要とする親コントロール ( FlipViewScrollViewer、その他の関連するコントロールなど) と互換性がありません。 これらのコントロールは、オフスレッド WebView で開始されたジェスチャを受信できません。 さらに、オフスレッドの Web コンテンツの出力は、直接サポートされていません。つまり、要素は WebViewBrush フィルで代わりに出力することになります。

別のプロセスでの WebView のフォーカス動作

アプリ プロセスで実行する場合も、別のプロセスで実行する場合でも、WebView.Focus メソッドを呼び出すことで WebView にフォーカスを設定できます。 これは、Control.Focus メソッドと Hyperlink.Focus メソッドと同じです (WebView は Control から派生しないことに注意してください)。

同様に、 FocusManager クラスのいくつかのメソッドは、WebView (または Control または Hyperlink) に影響を与える可能性があります。 TryMoveFocusFindNextFocusableElementFindLastFocusableElementGetFocusedElement。 たとえば、TryMoveFocus はフォーカスを WebView に移動し、GetFocusedElement はフォーカスを持つ WebView を返します。

最後に、WebView との間でフォーカスを移動すると、WebView 自体と、フォーカスを失ったり受け取ったりする要素の両方でフォーカス イベントが発生します。 イベントは LosingFocusLostFocusGettingFocusGotFocus です。 たとえば、フォーカスが Control から WebView に移動すると、コントロールは LosingFocus イベントと 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 を呼び出した場合、この変更はありません。 ただし、非同期メソッドを使用すると、フォーカスの変更が成功したかどうかを判断できます。

別のプロセスで WebView 以外の要素に対して FocusManager.TryMoveFocusAsync を呼び出すと、同期的に完了します。

この例では、フォーカスを次の論理要素に移動する方法を示しますが、失敗した場合は、最初の場所にフォーカスを復元します。

async void MoveFocus(WebView webView))
{
    FocusMovementResult result;
    result = await FocusManager.TryFocusAsync(webView, FocusState.Programmatic);
    if (!result.Succeeded)
    {
        // Reset focus to the starting position
        this.Focus(FocusState.Programmatic);
    }
}

アラートの使用

WebView でホストされている Web ページが JavaScript Alert 関数を使用している場合、その Web ページは表示されません。 これは、WebView のすべてのバージョンの仕様です。

アラートによって表示される情報をインターセプトし、ホスト アプリケーションで必要な操作を実行できる場合があります。 これが可能かどうかは、ページの書き込み方法と、ページを制御できるかどうかによって異なります。 これを行うための 1 つの可能な手法を示すサンプルを使用できます。 このサンプルは、Windows 8.1 および Windows Phone 8.1 用に記述されていますが、ユニバーサル Windows プラットフォーム (UWP) を使用するアプリでも機能します。 ただし、これはすべてのシナリオで機能しない場合があります。

ユニバーサル Windows アプリの WebView で JavaScript アラートをインターセプトする方法のサンプル

以前のバージョンのメモ

Windows 8.1

次の WebView API は、Windows 8.1では非推奨です。

Windows でのみ、 UnsafeContentWarningDisplaying イベントを 処理できます。 このイベントは、SmartScreen フィルターによって安全ではないと報告されたコンテンツの警告ページが WebView に表示されるときに発生します。 ユーザーがナビゲーションの続行を選んだ場合は、そのページへの移動では以降、警告が表示されたり、イベントが発されたりすることはありません。 このイベントは、Windows Phoneには実装されていません。

InvokeScriptAsync メソッドを呼び出して WebView 内で JavaScript を呼び出す場合、Alert などのセカンダリ ウィンドウを必要とする関数はサポートされません。

Windows Phone 8

UnsafeContentWarningDisplaying イベントは、Windows 10より前のWindows Phoneに対して実装されていません。

Windows 8

これらの解説は、Windows 8.1以降で実行されている場合でも、Windows 8 用にコンパイルされたアプリにのみ適用されます。

Windows 8 では、WebView には、コントロールなどの他の UI 領域を WebView の上にレンダリングできないという特性があります。 この "空域の問題" は、ウィンドウ領域の内部的な処理方法、特に入力イベントの処理方法と画面の描画方法が原因です。 HTML コンテンツをレンダリングし、その HTML コンテンツの上に他の UI 要素を配置する場合は、レンダリング領域として WebViewBrush を使用する必要があります。 WebView は引き続き HTML ソース情報を提供し、 SourceName プロパティを使用してその WebView を参照します。 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

要素で現在使用されている UI テーマを取得します。 これは RequestedTheme とは異なる場合があります。

(継承元 FrameworkElement)
ActualWidth

FrameworkElement のレンダリングされた幅を取得します。 「解説」を参照してください。

(継承元 FrameworkElement)
AllowDrop

この UIElement をドラッグ アンド ドロップ操作の目的でドロップ ターゲットにできるかどうかを決定する値を取得または設定します。

(継承元 UIElement)
AllowedScriptNotifyUris

注意

AllowedScriptNotifyUris は、Windows 8.1用にコンパイルされたアプリではサポートされていません。 代わりに、アプリ マニフェストの ApplicationContentUriRules セクションを更新します。 詳細については、「解説」セクションを参照してください。

ScriptNotify イベントをこの WebView に対して実行できる URI のセーフ リストを取得または設定します。

AllowedScriptNotifyUrisProperty

注意

AllowedScriptNotifyUrisProperty は、Windows 8.1用にコンパイルされたアプリではサポートされていません。 代わりに、アプリ マニフェストの ApplicationContentUriRules セクションを更新します。 詳細については、「解説」セクションを参照してください。

AllowedScriptNotifyUris 依存関係プロパティを識別します。

AllowFocusOnInteraction

ユーザーが操作するときに要素が自動的にフォーカスを取得するかどうかを示す値を取得または設定します。

(継承元 FrameworkElement)
AllowFocusWhenDisabled

無効なコントロールがフォーカスを受け取ることができるかどうかを取得または設定します。

(継承元 FrameworkElement)
AnyScriptNotifyUri

注意

AnyScriptNotifyUri は、Windows 8.1用にコンパイルされたアプリではサポートされていません。 代わりに、アプリ マニフェストの ApplicationContentUriRules セクションを更新します。 詳細については、「解説」セクションを参照してください。

AllowedScriptNotifyUris プロパティを設定して、任意のページがこの WebViewScriptNotify イベントを発生できることを示すために使用できる値を取得します。

BaseUri

XAML 読み込み時に XAML で構築されたオブジェクトのベース URI (Uniform Resource Identifier) を表す Uniform Resource Identifier (URI) を取得します。 このプロパティは、実行時の URI (Uniform Resource Identifier) 解決に役立ちます。

(継承元 FrameworkElement)
CacheMode

レンダリングされたコンテンツを可能な限り複合ビットマップとしてキャッシュする必要があることを示す値を取得または設定します。

(継承元 UIElement)
CanBeScrollAnchor

UIElement をスクロール アンカーの候補にできるかどうかを示す値を取得または設定します。

(継承元 UIElement)
CanDrag

要素をドラッグ アンド ドロップ操作でデータとしてドラッグできるかどうかを示す値を取得または設定します。

(継承元 UIElement)
CanGoBack

後方ナビゲーション履歴に少なくとも 1 つのページがあるかどうかを示す値を取得します。

CanGoBackProperty

CanGoBack 依存関係プロパティを識別します。

CanGoForward

前方ナビゲーション履歴に少なくとも 1 つのページがあるかどうかを示す値を取得します。

CanGoForwardProperty

CanGoForward 依存関係プロパティを識別します。

CenterPoint

要素の中心点 (回転またはスケーリングが発生するポイント) を取得または設定します。 要素のレンダリング位置に影響します。

(継承元 UIElement)
Clip

UIElement の内容のアウトラインを定義するために使用する RectangleGeometry を取得または設定します。

(継承元 UIElement)
CompositeMode

親レイアウトとウィンドウ内の要素の代替合成モードとブレンド モードを宣言するプロパティを取得または設定します。 これは、混合 XAML/Microsoft DirectX UI に関連する要素に関連します。

(継承元 UIElement)
ContainsFullScreenElement

全画面表示をサポートする要素が WebView に含まれているかどうかを示す値を取得します。

ContainsFullScreenElementProperty

ContainsFullScreenElement 依存関係プロパティを識別します。

ContextFlyout

この要素に関連付けられているポップアップを取得または設定します。

(継承元 UIElement)
DataContext

FrameworkElement のデータ コンテキストを取得または設定します。 データ コンテキストの一般的な用途は、 FrameworkElement{Binding} マークアップ拡張機能を使用し、データ バインディングに参加する場合です。

(継承元 FrameworkElement)
DataTransferPackage

注意

DataTransferPackage は、Windows 8.1後にリリースで変更または使用できない場合があります。 代わりに、 CaptureSelectedContentToDataPackageAsync を使用します

WebView に渡されたクリップボード DataPackage を取得します。

DataTransferPackageProperty

注意

DataTransferPackageProperty は、Windows 8.1後にリリースで変更または使用できない場合があります。 代わりに、 CaptureSelectedContentToDataPackageAsync を使用します

DataTransferPackage 依存関係プロパティを識別します。

DefaultBackgroundColor

HTML コンテンツで色が指定されていない場合に WebView の背景として使用する色を取得または設定します。

DefaultBackgroundColorProperty

DefaultBackgroundColor 依存関係プロパティを識別します。

DefaultExecutionMode

現在のアプリの WebView インスタンスの既定のスレッド動作を取得します。

DeferredPermissionRequests

許可または拒否を待機しているアクセス許可要求のコレクションを取得します。

DesiredSize

レイアウト プロセスのメジャー パス中にこの UIElement が計算したサイズを取得します。

(継承元 UIElement)
Dispatcher

このオブジェクトが関連付けられている CoreDispatcher を取得します。 CoreDispatcher は、コードが UI 以外のスレッドによって開始された場合でも、UI スレッド上の DependencyObject にアクセスできる機能を表します。

(継承元 DependencyObject)
DocumentTitle

WebView に現在表示されているページのタイトルを取得します。

DocumentTitleProperty

DocumentTitle 依存関係プロパティを識別します。

ExecutionMode

WebView が UI スレッド上のコンテンツをホストするか、UI 以外のスレッドでホストするかを示す値を取得します。

ExitDisplayModeOnAccessKeyInvoked

アクセス キーが呼び出されたときにアクセス キーの表示を閉じるかどうかを指定する値を取得または設定します。

(継承元 UIElement)
FlowDirection

レイアウトを制御する任意の親要素内でテキストやその他の UI 要素が流れる方向を取得または設定します。 このプロパティは、 LeftToRight または RightToLeft のいずれかに設定できます。 任意の要素で FlowDirection を RightToLeft に設定すると、配置が右に設定され、読み取り順序が右から左に設定され、コントロールのレイアウトが右から左にフローします。

(継承元 FrameworkElement)
FocusVisualMargin

FrameworkElement のフォーカス ビジュアルの外側の余白を取得または設定します。

(継承元 FrameworkElement)
FocusVisualPrimaryBrush

FrameworkElement の または Reveal フォーカス ビジュアルの外側の境界線をHighVisibility描画するために使用するブラシを取得または設定します。

(継承元 FrameworkElement)
FocusVisualPrimaryThickness

FrameworkElement の または フォーカス ビジュアルの外側の境界線のHighVisibility太さを取得またはReveal設定します。

(継承元 FrameworkElement)
FocusVisualSecondaryBrush

FrameworkElement の または Reveal フォーカス ビジュアルの内側の境界線をHighVisibility描画するために使用するブラシを取得または設定します。

(継承元 FrameworkElement)
FocusVisualSecondaryThickness

FrameworkElement の または フォーカス ビジュアルの内側の境界線のHighVisibility太さを取得またはReveal設定します。

(継承元 FrameworkElement)
Height

FrameworkElement の推奨される高さを取得または設定します。

(継承元 FrameworkElement)
HighContrastAdjustment

ハイ コントラスト テーマが有効になっている場合に、フレームワークが要素のビジュアル プロパティを自動的に調整するかどうかを示す値を取得または設定します。

(継承元 UIElement)
HorizontalAlignment

パネルや項目コントロールなど、レイアウトの親で構成されている場合に FrameworkElement に適用される水平方向の配置特性を取得または設定します。

(継承元 FrameworkElement)
IsAccessKeyScope

要素が独自のアクセス キー スコープを定義するかどうかを示す値を取得または設定します。

(継承元 UIElement)
IsDoubleTapEnabled

DoubleTapped イベントがその要素から発生するかどうかを決定する値を取得または設定します。

(継承元 UIElement)
IsHitTestVisible

この UIElement の包含領域がヒット テストの true 値を返すことができるかどうかを取得または設定します。

(継承元 UIElement)
IsHoldingEnabled

Holding イベントがその要素から発生するかどうかを決定する値を取得または設定します。

(継承元 UIElement)
IsLoaded

要素が要素ツリーに追加され、操作の準備ができているかどうかを示す値を取得します。

(継承元 FrameworkElement)
IsRightTapEnabled

RightTapped イベントがその要素から発生するかどうかを決定する値を取得または設定します。

(継承元 UIElement)
IsTapEnabled

Tapped イベントがその要素から発生するかどうかを決定する値を取得または設定します。

(継承元 UIElement)
KeyboardAcceleratorPlacementMode

コントロール のヒント に、関連付けられているキーボード アクセラレータのキーの組み合わせを表示するかどうかを示す値を取得または設定します。

(継承元 UIElement)
KeyboardAcceleratorPlacementTarget

アクセラレータ キーの組み合わせを表示 するコントロールヒント を示す値を取得または設定します。

(継承元 UIElement)
KeyboardAccelerators

キーボードを使用してアクションを呼び出すキーの組み合わせのコレクションを取得します。

アクセラレータは通常、ボタンまたはメニュー項目に割り当てられます。

さまざまなメニュー項目のキーボード アクセラレータを示すメニューの例
さまざまなメニュー項目のキーボード アクセラレータを示すメニューの例

(継承元 UIElement)
KeyTipHorizontalOffset

UIElement に関連してキー ヒントを左右に配置する距離を示す値を取得または設定します。

(継承元 UIElement)
KeyTipPlacementMode

アクセス キーのキー ヒントが UIElement の境界に対して配置される場所を示す値を取得または設定します。

(継承元 UIElement)
KeyTipTarget

アクセス キーのキー ヒントの対象となる要素を示す値を取得または設定します。

(継承元 UIElement)
KeyTipVerticalOffset

UI 要素に関連してキー ヒントを配置する距離を示す値を取得または設定します。

(継承元 UIElement)
Language

FrameworkElement に適用されるローカライズ/グローバリゼーション言語情報と、オブジェクト表現と UI の現在の FrameworkElement のすべての子要素を取得または設定します。

(継承元 FrameworkElement)
Lights

この要素にアタッチされている XamlLight オブジェクトのコレクションを取得します。

(継承元 UIElement)
ManipulationMode

UIElement の動作とジェスチャとの対話に使用される ManipulationModes 値を取得または設定します。 この値を設定すると、アプリ コードでこの要素から操作イベントを処理できます。

(継承元 UIElement)
Margin

FrameworkElement の外側の余白を取得または設定します。

(継承元 FrameworkElement)
MaxHeight

FrameworkElement の最大高さ制約を取得または設定します。

(継承元 FrameworkElement)
MaxWidth

FrameworkElement の最大幅制約を取得または設定します。

(継承元 FrameworkElement)
MinHeight

FrameworkElement の最小高さ制約を取得または設定します。

(継承元 FrameworkElement)
MinWidth

FrameworkElement の最小幅制約を取得または設定します。

(継承元 FrameworkElement)
Name

オブジェクトの識別名を取得または設定します。 XAML プロセッサが XAML マークアップからオブジェクト ツリーを作成する場合、ランタイム コードはこの名前で XAML で宣言されたオブジェクトを参照できます。

(継承元 FrameworkElement)
Opacity

オブジェクトの不透明度の程度を取得または設定します。

(継承元 UIElement)
OpacityTransition

Opacity プロパティへの変更をアニメーション化する ScalarTransition を取得または設定します。

(継承元 UIElement)
Parent

オブジェクト ツリー内のこの FrameworkElement の親オブジェクトを取得します。

(継承元 FrameworkElement)
PointerCaptures

Pointer 値として表されるすべてのキャプチャされたポインターのセット を取得します

(継承元 UIElement)
Projection

この要素をレンダリングするときに適用するパースペクティブ プロジェクション (3-D 効果) を取得または設定します。

(継承元 UIElement)
RenderSize

UIElement の最終的なレンダリング サイズを取得します。 使用は推奨されません。「解説」を参照してください。

(継承元 UIElement)
RenderTransform

UIElement のレンダリング位置に影響する変換情報を取得または設定します。

(継承元 UIElement)
RenderTransformOrigin

UIElement の境界を基準にして、RenderTransform によって宣言された可能なレンダー変換の原点を取得または設定します。

(継承元 UIElement)
RequestedTheme

リソースを決定するために UIElement (およびその子要素) によって使用される UI テーマを取得または設定します。 RequestedTheme で指定した UI テーマは、アプリ レベルの RequestedTheme をオーバーライドできます。

(継承元 FrameworkElement)
Resources

ローカルで定義されたリソース ディクショナリを取得します。 XAML では、XAML の暗黙的なコレクション構文を使用して、プロパティ要素の frameworkElement.Resources 子オブジェクト要素としてリソース項目を確立できます。

(継承元 FrameworkElement)
Rotation

時計回りの回転角度を度単位で取得または設定します。 RotationAxis と CenterPoint を基準にして回転します。 要素のレンダリング位置に影響します。

(継承元 UIElement)
RotationAxis

要素を回転させる軸を取得または設定します。

(継承元 UIElement)
RotationTransition

Rotation プロパティの変更をアニメーション化する ScalarTransition を取得または設定します。

(継承元 UIElement)
Scale

要素のスケールを取得または設定します。 要素の CenterPoint を基準にスケールします。 要素のレンダリング位置に影響します。

(継承元 UIElement)
ScaleTransition

Scale プロパティの変更をアニメーション化する Vector3Transition を取得または設定します。

(継承元 UIElement)
Settings

WebView 機能を有効または無効にするプロパティを含む WebViewSettings オブジェクトを取得します。

Shadow

要素によってキャストされる影の効果を取得または設定します。

(継承元 UIElement)
Source

WebView コントロールに表示する HTML コンテンツの URI (Uniform Resource Identifier) ソースを取得または設定します。

SourceProperty

Source 依存関係プロパティを識別 します

Style

レイアウトとレンダリング中にこのオブジェクトに適用されるインスタンス Style を取得または設定します。

(継承元 FrameworkElement)
TabFocusNavigation

このコントロールのタブと TabIndex の動作方法を変更する値を取得または設定します。

(継承元 UIElement)
Tag

このオブジェクトに関するカスタム情報を格納するために使用できる任意のオブジェクト値を取得または設定します。

(継承元 FrameworkElement)
Transform3D

この要素をレンダリングするときに適用する 3-D 変換効果を取得または設定します。

(継承元 UIElement)
TransformMatrix

要素に適用する変換マトリックスを取得または設定します。

(継承元 UIElement)
Transitions

UIElement に適用される Transition スタイル要素のコレクションを取得または設定します。

(継承元 UIElement)
Translation

要素の x、y、z のレンダリング位置を取得または設定します。

(継承元 UIElement)
TranslationTransition

Translation プロパティの変更をアニメーション化する Vector3Transition を取得または設定します。

(継承元 UIElement)
Triggers

FrameworkElement に対して定義されているアニメーションのトリガーのコレクションを取得します。 一般的に使用されません。 「解説」を参照してください。

(継承元 FrameworkElement)
UIContext

要素のコンテキスト識別子を取得します。

(継承元 UIElement)
UseLayoutRounding

オブジェクトとそのビジュアル サブツリーのレンダリングで、レンダリングをピクセル全体に合わせた丸め動作を使用するかどうかを決定する値を取得または設定します。

(継承元 UIElement)
VerticalAlignment

パネルや項目コントロールなどの親オブジェクトで構成されている場合に FrameworkElement に適用される垂直方向の配置特性を取得または設定します。

(継承元 FrameworkElement)
Visibility

UIElement の可視性を取得または設定します。 表示されない UIElement はレンダリングされず、目的のサイズをレイアウトに伝達しません。

(継承元 UIElement)
Width

FrameworkElement の幅を取得または設定します。

(継承元 FrameworkElement)
XamlRoot

この要素が表示される を XamlRoot 取得または設定します。

(継承元 UIElement)
XYFocusDown

ユーザーが方向パッド (D パッド) を押したときにフォーカスを取得するオブジェクトを取得または設定します。

XYFocusDownNavigationStrategy

ダウン ナビゲーションのターゲット要素を決定するために使用する戦略を指定する値を取得または設定します。

(継承元 UIElement)
XYFocusDownProperty

XYFocusDown 依存関係プロパティを識別します。

XYFocusKeyboardNavigation

キーボード方向矢印を使用してナビゲーションを有効または無効にする値を取得または設定します。

(継承元 UIElement)
XYFocusLeft

ユーザーが方向パッド (D パッド) を左に押したときにフォーカスを取得するオブジェクトを取得または設定します。

XYFocusLeftNavigationStrategy

左側のナビゲーションのターゲット要素を決定するために使用される戦略を指定する値を取得または設定します。

(継承元 UIElement)
XYFocusLeftProperty

XYFocusLeft 依存関係プロパティを識別します。

XYFocusRight

ユーザーが方向パッド (D パッド) を右に押したときにフォーカスを取得するオブジェクトを取得または設定します。

XYFocusRightNavigationStrategy

右ナビゲーションのターゲット要素を決定するために使用される戦略を指定する値を取得または設定します。

(継承元 UIElement)
XYFocusRightProperty

XYFocusRight 依存関係プロパティを識別します。

XYFocusUp

ユーザーが方向パッド (D パッド) を上に押したときにフォーカスを取得するオブジェクトを取得または設定します。

XYFocusUpNavigationStrategy

アップ ナビゲーションのターゲット要素を決定するために使用する戦略を指定する値を取得または設定します。

(継承元 UIElement)
XYFocusUpProperty

XYFocusUp 依存関係プロパティを識別します。

メソッド

AddHandler(RoutedEvent, Object, Boolean)

指定したルーティング イベントのルーティング イベント ハンドラーを追加します。このハンドラーは、現在の要素のハンドラー コレクションに追加されます。 handledEventsToo をtrue として指定すると、イベントが他の場所で処理される場合でも、指定されたハンドラーを呼び出すことができます。

(継承元 UIElement)
AddWebAllowedObject(String, Object)

ネイティブ Windows ランタイム オブジェクトをグローバル パラメーターとして WebView 内の最上位のドキュメントに追加します。

Arrange(Rect)

子オブジェクトを配置し、 UIElement のサイズを決定します。 子要素のカスタム レイアウトを実装する親オブジェクトは、そのレイアウトオーバーライド実装からこのメソッドを呼び出して、再帰的なレイアウト更新を形成する必要があります。

(継承元 UIElement)
ArrangeOverride(Size)

レイアウトの "配置" パスの動作を提供します。 クラスは、このメソッドをオーバーライドして、独自の "配置" パス動作を定義できます。

(継承元 FrameworkElement)
BuildLocalStreamUri(String, String)

NavigateToLocalStreamUri に渡すことができる URI を作成します。

CancelDirectManipulations()

現在の UIElement を含む ScrollViewer 親に対して、進行中の直接操作処理 (システム定義のパン/ズーム) を取り消します。

(継承元 UIElement)
CapturePointer(Pointer)

ポインター キャプチャを UIElement に設定します。 キャプチャされると、キャプチャを持つ要素のみがポインター関連のイベントを発生させます。

(継承元 UIElement)
CapturePreviewToStreamAsync(IRandomAccessStream)

現在の WebView コンテンツのイメージを作成し、指定したストリームに書き込みます。

CaptureSelectedContentToDataPackageAsync()

WebView 内で選択したコンテンツを含む DataPackage を非同期に取得します。

ClearTemporaryWebDataAsync()

WebView のキャッシュデータと IndexedDB データをクリアします。

ClearValue(DependencyProperty)

依存関係プロパティのローカル値をクリアします。

(継承元 DependencyObject)
DeferredPermissionRequestById(UInt32)

指定した ID を持つ遅延アクセス許可要求を返 します

FindName(String)

指定した識別子名を持つオブジェクトを取得します。

(継承元 FrameworkElement)
FindSubElementsForTouchTargeting(Point, Rect)

UIElement サブクラスが、タッチ ターゲットの解決に役立つ子要素を公開できるようにします。

(継承元 UIElement)
Focus(FocusState)

入力フォーカスを WebView に設定します。

GetAnimationBaseValue(DependencyProperty)

依存関係プロパティに対して確立された基本値を返します。これは、アニメーションがアクティブでない場合に適用されます。

(継承元 DependencyObject)
GetBindingExpression(DependencyProperty)

指定したプロパティのバインドを表す BindingExpression を返します。

(継承元 FrameworkElement)
GetChildrenInTabFocusOrder()

UIElement サブクラスが Tab フォーカスに参加する子要素を公開できるようにします。

(継承元 UIElement)
GetValue(DependencyProperty)

DependencyObject から依存関係プロパティの現在の有効な値を返します。

(継承元 DependencyObject)
GoBack()

WebView をナビゲーション履歴の前のページに移動します。

GoForward()

WebView をナビゲーション履歴の次のページに移動します。

GoToElementStateCore(String, Boolean)

派生クラスで実装すると、コントロールの起動時にすべての状態の XAML を読み込むのではなく、コード内のコントロール テンプレートのビジュアル ツリーを状態ごとに構築できます。

(継承元 FrameworkElement)
InvalidateArrange()

UIElement の配置状態 (レイアウト) を無効にします。 無効にすると、 UIElement のレイアウトが更新され、非同期的に行われます。

(継承元 UIElement)
InvalidateMeasure()

UIElement の測定状態 (レイアウト) を無効にします。

(継承元 UIElement)
InvalidateViewport()

有効なビューポートの計算に使用される UIElementビューポート状態を無効にします。

(継承元 FrameworkElement)
InvokeScript(String, String[])

注意

invokeScript は、Windows 8.1後にリリースで変更または使用できない場合があります。 代わりに、 InvokeScriptAsync を使用します

特定の引数を使用して、現在読み込まれている HTML から指定されたスクリプト関数を実行します。

InvokeScriptAsync(String, IIterable<String>)

現在読み込まれている HTML から、特定の引数を使用して、指定されたスクリプト関数を非同期アクションとして実行します。

Measure(Size)

UIElementDesiredSize を更新します。 通常、レイアウトの子のカスタム レイアウトを実装するオブジェクトは、独自の MeasureOverride 実装からこのメソッドを呼び出して、再帰的なレイアウト更新を形成します。

(継承元 UIElement)
MeasureOverride(Size)

レイアウト サイクルの "メジャー" パスの動作を提供します。 クラスは、このメソッドをオーバーライドして、独自の "Measure" パス動作を定義できます。

(継承元 FrameworkElement)
Navigate(Uri)

指定した Uniform Resource Identifier (URI) で HTML コンテンツを読み込みます。

NavigateToLocalStreamUri(Uri, IUriToStreamResolver)

IUriToStreamResolver を使用して、指定した URI でローカル Web コンテンツを読み込みます。

NavigateToString(String)

指定した HTML コンテンツを新しいドキュメントとして読み込みます。

NavigateWithHttpRequestMessage(HttpRequestMessage)

WEBView を POST 要求と HTTP ヘッダーを含む URI に移動します。

OnApplyTemplate()

アプリケーション コードまたは内部プロセス (再構築レイアウト パスなど) が ApplyTemplate を呼び出すたびに呼び出されます。 最も簡単に言うと、これは、UI 要素がアプリに表示される直前に メソッドが呼び出されていることを意味します。 クラスの既定のテンプレート後ロジックに影響を与えるために、このメソッドをオーバーライドします。

(継承元 FrameworkElement)
OnBringIntoViewRequested(BringIntoViewRequestedEventArgs)

BringIntoViewRequested イベントが発生する前に呼び出されます。

(継承元 UIElement)
OnCreateAutomationPeer()

派生クラスで実装されると、Microsoft UI オートメーション インフラストラクチャのクラス固有の AutomationPeer 実装が返されます。

(継承元 UIElement)
OnDisconnectVisualChildren()

クラス固有のコンテンツまたは子プロパティから項目が削除されたときにレイアウトとロジックがどのように動作するかを実装するには、このメソッドをオーバーライドします。

(継承元 UIElement)
OnKeyboardAcceleratorInvoked(KeyboardAcceleratorInvokedEventArgs)

アプリで キーボード ショートカット (またはアクセラレータ) が処理されるときに呼び出されます。 キーボード アクセラレータが呼び出されたときにアプリがどのように応答するかを処理するには、このメソッドをオーバーライドします。

(継承元 UIElement)
OnProcessKeyboardAccelerators(ProcessKeyboardAcceleratorEventArgs)

アプリでキーボード ショートカット (またはアクセラレータ) が処理される直前に呼び出されます。 アプリケーション コードまたは内部プロセスが ProcessKeyboardAccelerators を呼び出すたびに呼び出されます。 このメソッドをオーバーライドして、既定のアクセラレータ処理に影響を与える。

(継承元 UIElement)
PopulatePropertyInfo(String, AnimationPropertyInfo)

アニメーション化できるプロパティを定義します。

(継承元 UIElement)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

派生クラスでオーバーライドされると、アニメーション化できるプロパティを定義します。

(継承元 UIElement)
ReadLocalValue(DependencyProperty)

ローカル値が設定されている場合は、依存関係プロパティのローカル値を返します。

(継承元 DependencyObject)
Refresh()

WebView の現在のコンテンツを再読み込みします。

RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

この DependencyObject インスタンスの特定の DependencyProperty に対する変更をリッスンするための通知関数を登録します。

(継承元 DependencyObject)
ReleasePointerCapture(Pointer)

この UIElement によって 1 つの特定のポインターをキャプチャするためのポインター キャプチャを解放します。

(継承元 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

1 つの構成済み文字が入力キューによって受信されたときに発生します。

(継承元 UIElement)
ContainsFullScreenElementChanged

WebView に現在全画面表示要素が含まれているかどうかの状態が変更されたときに発生します。

ContentLoading

WebView が新しいコンテンツの読み込みを開始したときに発生します。

ContextCanceled

コンテキスト入力ジェスチャが操作ジェスチャに続き、コンテキスト ポップアップを開くべきではないことを要素に通知するときに発生します。

(継承元 UIElement)
ContextRequested

ユーザーが右クリックなどのコンテキスト入力ジェスチャを完了したときに発生します。

(継承元 UIElement)
DataContextChanged

FrameworkElement.DataContext プロパティの値が変更されたときに発生します。

(継承元 FrameworkElement)
DOMContentLoaded

WebView が現在の HTML コンテンツの解析を完了したときに発生します。

DoubleTapped

この要素のヒット テスト領域で、それ以外の方法でハンドルされない DoubleTap 相互作用が発生したときに発生します。

(継承元 UIElement)
DragEnter

入力システムが、この要素をターゲットとして使用して基になるドラッグ イベントを報告するときに発生します。

(継承元 UIElement)
DragLeave

入力システムが、この要素を原点として基になるドラッグ イベントを報告するときに発生します。

(継承元 UIElement)
DragOver

この要素がドロップ先となる可能性のある、基になるドラッグ イベントを入力システムが報告したときに発生します。

(継承元 UIElement)
DragStarting

ドラッグ操作が開始されたときに発生します。

(継承元 UIElement)
Drop

入力システムがこの要素をドロップ先とするドロップ イベントを報告したときに発生します。

(継承元 UIElement)
DropCompleted

ソースとしてこの要素を使用したドラッグ アンド ドロップ操作が終了したときに発生します。

(継承元 UIElement)
EffectiveViewportChanged

FrameworkElement有効なビューポートが変更されたときに発生します。

(継承元 FrameworkElement)
FrameContentLoading

WebView 内のフレームが新しいコンテンツの読み込みを開始したときに発生します。

FrameDOMContentLoaded

WebView 内のフレームが現在の HTML コンテンツの解析を完了したときに発生します。

FrameNavigationCompleted

WebView 内のフレームがコンテンツの読み込みを完了したときに発生します。

FrameNavigationStarting

WebView 内のフレームが新しいコンテンツに移動する前に発生します。

GettingFocus

UIElement がフォーカスを受け取る前に発生します。 このイベントは、イベントがバブルしている間にフォーカスが移動されないように同期的に発生します。

(継承元 UIElement)
GotFocus

UIElement がフォーカスを受け取ったときに発生します。 このイベントは非同期的に発生するため、バブルが完了する前にフォーカスを再び移動できます。

(継承元 UIElement)
Holding

この要素のヒット テスト領域で、それ以外の場合はハンドルされない 保留 操作が発生したときに発生します。

(継承元 UIElement)
KeyDown

UIElement にフォーカスがあるときにキーボード キーが押されたときに発生します。

(継承元 UIElement)
KeyUp

UIElement にフォーカスがあるときにキーボード キーが解放されたときに発生します。

(継承元 UIElement)
LayoutUpdated

レイアウト関連のプロパティが値を変更したり、レイアウトを更新するその他のアクションが原因で、ビジュアル ツリーのレイアウトが変更されたときに発生します。

(継承元 FrameworkElement)
LoadCompleted

注意

LoadCompleted は、Windows 8.1後にリリースで変更または使用できない場合があります。 代わりに、 NavigationCompleted を使用します。

最上位のナビゲーションが完了し、コンテンツが WebView コントロールに読み込まれるか、読み込み中にエラーが発生したときに発生します。

Loaded

FrameworkElement が構築され、オブジェクト ツリーに追加され、操作の準備ができたときに発生します。

(継承元 FrameworkElement)
Loading

FrameworkElement の読み込みが開始されたときに発生します。

(継承元 FrameworkElement)
LongRunningScriptDetected

WebView で JavaScript が実行されている間に定期的に発生し、スクリプトを停止できます。

LosingFocus

UIElement がフォーカスを失う前に発生します。 このイベントは、イベントがバブルしている間にフォーカスが移動されないように同期的に発生します。

(継承元 UIElement)
LostFocus

UIElement がフォーカスを失ったときに発生します。 このイベントは非同期的に発生するため、バブルが完了する前にフォーカスを再び移動できます。

(継承元 UIElement)
ManipulationCompleted

UIElement の操作が完了したときに発生します。

(継承元 UIElement)
ManipulationDelta

操作中に入力デバイスが位置を変更したときに発生します。

(継承元 UIElement)
ManipulationInertiaStarting

操作中に入力デバイスが UIElement オブジェクトとのコンタクトを失ったときと慣性が開始したときに発生します。

(継承元 UIElement)
ManipulationStarted

入力デバイスが UIElement に対する操作を開始すると発生します。

(継承元 UIElement)
ManipulationStarting

操作プロセッサを初めて作成するときに発生します。

(継承元 UIElement)
NavigationCompleted

WebView が現在のコンテンツの読み込みを完了したとき、またはナビゲーションが失敗した場合に発生します。

NavigationFailed

注意

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

ポインター デバイスがこの要素内で Press アクションを開始したときに発生します。

(継承元 UIElement)
PointerReleased

この要素内で、以前に Press アクションを開始したポインター デバイスが解放されたときに発生します。 Press アクションの終了が PointerReleased イベントを発生させる保証はされないことに注意してください。他のイベントが発生する可能性があります。 詳細については、「解説」を参照してください。

(継承元 UIElement)
PointerWheelChanged

ポインター ホイールのデルタ値が変更されたときに発生します。

(継承元 UIElement)
PreviewKeyDown

UIElement にフォーカスがあるときにキーボード キーが押されたときに発生します。

(継承元 UIElement)
PreviewKeyUp

UIElement にフォーカスがあるときにキーボード キーが解放されたときに発生します。

(継承元 UIElement)
ProcessKeyboardAccelerators

キーボード ショートカット (またはアクセラレータ) が押されたときに発生します。

(継承元 UIElement)
RightTapped

ポインターが 要素の上にある間に右タップ入力刺激が発生したときに発生します。

(継承元 UIElement)
ScriptNotify

WebView コントロールに含まれるコンテンツが、JavaScript を使用してアプリケーションに文字列を渡したときに発生します。

SeparateProcessLost

WebView が SeparateProcessExecutionMode で実行され、個別のプロセスが失われた場合に発生します。

SizeChanged

ActualHeight または ActualWidth プロパティが FrameworkElement の値を変更したときに発生します。

(継承元 FrameworkElement)
Tapped

この要素のヒット テスト領域で、それ以外の場合はハンドルされない Tap 操作が発生したときに発生します。

(継承元 UIElement)
Unloaded

このオブジェクトがメイン オブジェクト ツリーに接続されなくなったときに発生します。

(継承元 FrameworkElement)
UnsafeContentWarningDisplaying

SmartScreen フィルターによって安全でないと報告されたコンテンツの警告ページが WebView に表示されたときに発生します。

UnsupportedUriSchemeIdentified

WebView でサポートされていないスキームを使用して Uniform Resource Identifier (URI) に移動しようとした場合に発生します。

UnviewableContentIdentified

WebView がサポートされていないファイルのダウンロードを試みたときに発生します。

WebResourceRequested

HTTP 要求が行われたときに発生します。

適用対象

こちらもご覧ください