Thinking Different




WPF의 WebBrowser Control은 기본적으로 IE7을 기준으로 화면을 렌더링 합니다. IE7은 HTML5, CSS3 해석 과 더불어 Rendering에 있어 차이가 있기 때문에 IE7 이상의 버전으로 렌더링이 필요한 경우가 있습니다.

다행히도 Registry설정을 통해 WPF Application에서 사용할 Brower Version 및 Mode를 통제할 수 있습니다. 이 설정은 개별 Application마다 각각 적용되며, 전역설정은 없습니다. Registry를 등록하는 방법은 2가지로 구분되는데, 현재 사용자에게만 적용되게 하거나 모든 사용자에게 적용되는 설정으로 나누어집니다.

현재 사용자에게 적용

이 설정은 현재 로그인 된 사용자에게만 적용되는 방법입니다. 이 방법은 단순하고 관리자 권한이 불필요한 방법입니다. 즉, 관리자 계정으로 로그인하거나 Application을 재설치하는 등의 방법이 불필요합니다. 단지 Registry 등록 후 Application을 재시작해주면 변경사항이 반영됩니다.

Registry를 실행하고 다음 경로를 따라간 후 값을 설정합니다.

  1. 경로: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
  2. : DWORD YourApplication.exe

※ FeatureControl과 FEATURE_BROWSER_EMULATION 노드가 존재하지 않을 경우 생성하시면 됩니다.

전체 사용자에게 적용

32bit 혹은 64bit 환경에 따라 설정이 달라집니다.

32bit 혹은 64bit 전용 Application

  1. 경로: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
  2. 키값: DWORD YourApplication.exe

64bit 환경에서 32bit 모드로 실행되는 경우

  1. 경로: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
  2. 키값: DWORD YourApplication.exe

키 데이터

키의 데이터는 다음과 같이 할당해줍니다.

  • 11001 (0x2EDF) !DOCTYPE 선언과 상관없이 IE11 edge로 출력
  • 11000 (0x2AF8) standards-based !DOCTYPE 선언이 있을 경우 IE11 edge로 출력
  • 10001 (0x2AF7) !DOCTYPE 선언과 상관없이 IE10 Standards mode로 출력
  • 10000 (0x2710) standards-based !DOCTYPE 선언이 있을 경우 IE10 Standards mode로 출력
  • 9999 (0x270F) !DOCTYPE 선언과 상관없이 IE9 Standards mode로 출력
  • 9000 (0x2328) standards-based !DOCTYPE 선언이 있을 경우 IE9 mode로 출력
  • 8888 (0x22B8) !DOCTYPE 선언과 상관없이 IE8 Standards mode로 출력
  • 8000 (0x1F40) standards-based !DOCTYPE 선언이 있을 경우 IE8 Mode로 실행
  • 7000 (0x1B58) standards-based !DOCTYPE 선언이 있을 경우 IE7 Standards mode로 실행

적용 전 고려사항

  1. IE Version에 따라 Rendering방법이 달라지기에 HTML도 변경되어야 할 수 있습니다.
  2. BrowserControl에서 HTML을 제어하기 위해 제공하는 COM Interaface도 변경됩니다. 따라서 기존 IE7을 사용하는 Application을 IE9으로 변경하면, 내부의 COM Interface 코드 및 로직을 다시 작성하거나 테스트하여야 합니다.
  3. 사용자 환경에 해당 IE가 설치되지 않았다면 기본 Rendering Mode(IE7)으로 실행될 것입니다.

 

출처 : https://points.tistory.com/17