2012-05-01 28 views
7

क्या WPF WebBrowser नियंत्रण IE की संस्करण पर निर्भर करता है जो उपयोगकर्ता की मशीन पर स्थापित है, या यह मशीनों के अनुरूप एक अलग पुस्तकालय का उपयोग करता है? मैंने पढ़ा है कि यह केवल आईई 7 मोड में प्रस्तुत करता है, लेकिन मैं यह सुनिश्चित करना चाहता हूं कि ऐसे उपयोगकर्ता के साथ कोई समस्या नहीं होगी, जिनके पास IE स्थापित नहीं है या फिर भी किसी कारण से आईई 6 पर है।WPF WebBrowser ब्राउज़र संस्करण

उत्तर

13

MSDN remarks for WebBrowser से संकेत मिलता है कि यह आईई ActiveX नियंत्रण rehosts:

WebBrowser नियंत्रण आंतरिक रूप से देशी WebBrowser ActiveX नियंत्रण को दर्शाता है।

वेबब्रोसर ActiveX नियंत्रण Shdocvw.dll के रूप में जाना जाता है। यह बदले में Mshtml.dll लपेटता है, और शायद अन्य डीएलएल ने आपके पर्यावरण को दिया है। One caveat of rehosting this control is its setting for Browser Emulation:

वेबब्रोसर नियंत्रण होस्ट करने वाले अनुप्रयोगों के लिए, डिफ़ॉल्ट मान 7000 है। रजिस्ट्री का उपयोग करके इस सुविधा के मान को नियंत्रित करने के लिए, अपनी निष्पादन योग्य फ़ाइल का नाम निम्न सेटिंग में जोड़ें और वांछित सेटिंग से मेल खाने के लिए मान सेट करें।

0x7000 का अर्थ है आई 7 संगतता मोड। इसलिए, यदि आप कुछ अन्य मोड का उपयोग कर प्रस्तुत करने के लिए अपने WPF आवेदन चाहते हैं आप रजिस्ट्री को अद्यतन करने, adapted from this example के रूप में की जरूरत है:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION] 
"MyApplication.exe" = dword:2328 
+3

एक अन्य उपयोगी संसाधन [रिक स्ट्राल से यह ब्लॉग पोस्ट है क्योंकि वह अपने एचटीएमएल हेल्प बिल्डर के साथ काम करते समय इस मुद्दे का सामना कर रहा था] (http://www.west-wind.com/weblog/posts/2011/May/21/ वेब ब्राउज़र-नियंत्रण-निर्दिष्ट-IE-संस्करण)। – user7116

+0

सवाल यह था, "क्या WPF WebBrowser नियंत्रण सिस्टम पर स्थापित IE के संस्करण पर निर्भर करता है?" इस जवाब ने अभी बात की है कि आईई 7 अनुकरण कैसे सेट किया जा सकता है या ओवरराइड किया जा सकता है। क्या होता है यदि उपयोगकर्ता के पास अपनी मशीन पर आईई इंस्टॉल नहीं है या आईई 6 है? – ThePersonWithoutC

0

मैं IE11 के साथ एक मशीन पर एक WebBrowser नियंत्रण के साथ एक WPF एप्लिकेशन बनाया है और मिल गया इस उपयोगकर्ता एजेंट स्ट्रिंग:

user agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3; .NET CLR 1.1.4322) 

मैं IE10 के साथ एक मशीन पर एक WebBrowser नियंत्रण के साथ एक WPF एप्लिकेशन बनाया है और यह उपयोगकर्ता एजेंट स्ट्रिंग है:

user agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E) 

ट्राइडेंट/7.0 आईई 11 इंगित करता है और ट्राइडेंट/6.0 आईई 10 इंगित करता है। More about user-agent strings

आईई 10 के साथ सिस्टम आईई 11 के साथ सिस्टम से भिन्न रूप से प्रस्तुत किया गया था। मैंने इसे प्रत्येक सिस्टम पर स्टैंडअलोन आईई ब्राउज़र के साथ भी सत्यापित किया।

मैंने अभी तक आईई या आईई 6 चलाने वाली प्रणाली के बिना सिस्टम पर इसे आजमाया है, लेकिन ऐसा लगता है कि WebBrowser नियंत्रण वर्तमान में सिस्टम पर स्थापित IE के संस्करण से संबंधित है।