FEATURE_BROWSER_EMULATION を IE10 または IE11 に設定すると、Visual Studio の Web ブラウザー コントロールが誤動作するのはなぜですか?

Patricia Arquette
リリース: 2024-11-04 10:15:02
オリジナル
504 人が閲覧しました

Why does my Web Browser control in Visual Studio malfunction when setting FEATURE_BROWSER_EMULATION to IE10 or IE11?

FEATURE_BROWSER_EMULATION による Web ブラウザ コントロール エミュレーションの問題

問題の説明:

Web 使用時Visual Studio 2013 のブラウザー コントロールで、アプリケーションの FEATURE_BROWSER_EMULATION レジストリ キーを IE10 または IE11 エミュレーション値に設定すると、コントロールが誤動作します。具体的には、Dojo Toolkit デモ ページ (http://demos.dojotoolkit.org/demos/calendar/demo.html) の月の日付ピッカーが正しく動作しません。

解決策:

問題は FEATURE_NINPUT_LEGACY_MODE レジストリ設定にあります。この設定を無効にし、レジ​​ストリ構成を通じて他の機能を有効にすると、問題が解決します。修正されたソリューションは次のとおりです。

const int POLL_DELAY = 250;
WebBrowser _webBrowser;

// set WebBrowser features, more info: http://stackoverflow.com/a/18333982/1768303
static void SetWebBrowserFeatures()
{
    // don't change the registry if running in-proc inside Visual Studio
    if (LicenseManager.UsageMode != LicenseUsageMode.Runtime)
        return;

    var appName = System.IO.Path.GetFileName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);

    var featureControlRegKey = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\";

    Registry.SetValue(featureControlRegKey + "FEATURE_BROWSER_EMULATION",
        appName, GetBrowserEmulationMode(), RegistryValueKind.DWord);

    // enable the features which are "On" for the full Internet Explorer browser

    Registry.SetValue(featureControlRegKey + "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION",
        appName, 1, RegistryValueKind.DWord);

    Registry.SetValue(featureControlRegKey + "FEATURE_AJAX_CONNECTIONEVENTS",
        appName, 1, RegistryValueKind.DWord);

    Registry.SetValue(featureControlRegKey + "FEATURE_GPU_RENDERING",
        appName, 1, RegistryValueKind.DWord);

    Registry.SetValue(featureControlRegKey + "FEATURE_WEBOC_DOCUMENT_ZOOM",
        appName, 1, RegistryValueKind.DWord);

    // Disable FEATURE_NINPUT_LEGACY_MODE
    Registry.SetValue(featureControlRegKey + "FEATURE_NINPUT_LEGACYMODE",
        appName, 0, RegistryValueKind.DWord);
}
ログイン後にコピー

この更新された構成により、Web ブラウザー コントロールはアプリケーションの IE10 と IE11 の両方のエミュレーション設定で適切に機能するようになります。

以上がFEATURE_BROWSER_EMULATION を IE10 または IE11 に設定すると、Visual Studio の Web ブラウザー コントロールが誤動作するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!