2012-05-01 2 views
7

WPF WebBrowser 컨트롤은 사용자의 컴퓨터에 설치된 IE의 버전에 따라 달라 지거나 컴퓨터간에 일관된 별도의 라이브러리를 사용합니까? 나는 IE7 모드에서만 렌더링한다는 것을 읽었지만, IE가 설치되어 있지 않거나 어떤 이유로 든 IE6에 남아있는 사용자에게는 아무런 문제가 없도록하고 싶다.WPF WebBrowser 브라우저 버전

답변

13

MSDN remarks for WebBrowser는 IE의 ActiveX 컨트롤을 다시 호스팅 나타냅니다

WebBrowser 컨트롤은 내부적으로 기본 웹 브라우저 ActiveX 컨트롤을 인스턴스화합니다.

WebBrowser ActiveX 컨트롤은 Shdocvw.dll으로 잘 알려져 있습니다. 이 차례로 Mshtml.dll, 그리고 아마도 다른 DLL의 환경을 감쌌다. One caveat of rehosting this control is its setting for Browser Emulation :

WebBrowser 컨트롤을 호스팅하는 응용 프로그램의 경우 기본값은 7000입니다. 레지스트리를 사용하여이 기능의 값을 제어하려면 다음 설정에 실행 파일의 이름을 추가하고 원하는 설정과 일치하도록 값을 설정하십시오.

0x7000은 IE7 호환 모드를 의미합니다. 당신은 몇 가지 다른 모드를 사용하여 렌더링하여 WPF 응용 프로그램을 좋아하면 따라서 adapted from this example로, 레지스트리를 업데이트해야합니다

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

또 다른 유용한 리소스는 [Html Help Builder로 작업 할 때 릭 스트 렐의이 블로그 게시물입니다 (http://www.west-wind.com/weblog/posts/2011/May/21/)]입니다. 웹 브라우저 제어 - IE 버전 지정). – user7116

+0

질문은 "WPF WebBrowser 컨트롤이 시스템에 설치된 IE의 버전에 종속되어 있습니까?" 이 대답은 방금 IE7 에뮬레이션을 설정하거나 재정의 할 수있는 방법에 대해 설명했습니다. 사용자가 자신의 컴퓨터에 IE를 설치하지 않았거나 IE6을 가지고 있다면 어떻게됩니까? – ThePersonWithoutC

0

내가 IE11있는 컴퓨터에서 웹 브라우저 컨트롤과 함께 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과 컴퓨터의 웹 브라우저 컨트롤과 함께 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) 

Trident/7.0은 IE11을 나타내고 Trident/6.0은 IE10을 나타냅니다. More about user-agent strings.

IE10을 사용하는 시스템의 경우 페이지가 IE11 시스템과 다르게 렌더링됩니다. 각 시스템의 독립 실행 형 IE 브라우저에서도이를 확인했습니다.

IE 또는 IE6을 실행하는 시스템이없는 시스템에서 아직 시도하지 않았지만 WebBrowser 컨트롤이 현재 시스템에 설치된 IE 버전과 관련이있는 것처럼 보입니다.

관련 문제