2010-12-08 4 views
5

내 WPF 응용 프로그램에서 WebKit 브라우저 컨트롤을 사용하고 싶습니다. 그러나 디자인 타임에 추가 할 수 없습니다. 도구 상자에 WebKit을 추가하더라도 비활성화 상태입니다.WPF에서 WebKit 브라우저 컨트롤을 사용하는 방법

제 질문은 WPF 폼의 디자인 타임에 해당 컨트롤을 사용하는 방법입니까?

덕분에, omkar는

+1

[실제 WPF 4.0 웹 브라우저] (http://chriscavanagh.wordpress.com/2010/10/04/a-real-net-4-0-webbrowser/) – rooks

답변

2

http://msdn.microsoft.com/en-us/library/ms742735(v=vs.110).aspx에서 설명했듯이 먼저 XAML 파일에 WPF 표를 만들어야합니다.

<Grid x:Name="grdBrowserHost"> 
</Grid> 

그리고이 코드를 C# 소스에 삽입하여 WPF 형식의 .NET WebKit을 추가하십시오.

System.Windows.Forms.Integration.WindowsFormsHost host =new System.Windows.Forms.Integration.WindowsFormsHost(); 

// Create the ActiveX control. 
WebKit.WebKitBrowser browser = new WebKit.WebKitBrowser(); 
browser.Navigate("http://www.google.com"); 

// Assign the ActiveX control as the host control's child. 
host.Child = browser; 

// Add the interop host control to the Grid 
// control's collection of child controls. 
grdBrowserHost.Children.Add(host); 

는 이러한 참조 프로젝트에서
System.Windows.Forms 

WindowsFormsIntegration 

을 포함하는 것을 잊지 마십시오.

희망 도움말.

+0

이것은 WebKit을 실행 한 결과 불행한 일이 있습니다. 별도의 hWnd를 통해 'WindowsFormsHost'를 통해 WPF 컨텍스트 내에서 부모 역할을 수행합니다. 이는 성능에 해를 끼치고 높은 DPI 조건에서 사용할 수없는 많은 간접 계층을 추가합니다. – Dai

0

현재 WPF 응용 프로그램에서 Webkit (또는 Blink)을 호스팅하는 가장 좋은 방법 중 하나는 (2017 년 10 월 기준)이며 WinForms 및 WPF를 비롯한 다양한 플랫폼 용 일류 래퍼 라이브러리가있는 the Awesomium project 인 것으로 보입니다.

WPF 응용 프로그램에서 System.Windows.Forms.Integration.WindowsFormsHost 내부의 웹 브라우저 컨트롤을 사용하지 않는 것이 좋습니다. 간접적 인 추가 레이어와 높은 DPI 컨텍스트에서 예측할 수없는 동작이 있기 때문입니다. 다른 이유도 있습니다.

Awseomium은 진정한 오픈 소스 또는 자유 소프트웨어가 아닙니다. If your company makes more than $100k USD in profit per year then for commercial applications there is a $2900 USD per-title license fee. 길 밖으로 그주의와

, getting started with Awesomium in WPF is straightforward :

  1. Download the Awesomium SDK. (2017 년 10 월 현재 Awesomium 다운로드 페이지는 업그레이드 할 수 없으며 온라인에서는 but the SDK is still available to download from the Internet Archive 및 기타 장소).
  2. SDK 설치 관리자는 GW에 Awesomium 어셈블리를 등록하므로 WPF (및 WinForms) 도구 상자 항목 추가/제거 창에 나타납니다.
  3. Visual Studio에서 WPF 프로젝트를 열고 XAML 디자인 문서를 엽니 다.
  4. Visual Studio 도구 상자를 열고 항목 추가/제거 창을 열고 GAC에로드 된 Awesomium.Windows.Controls.dll 어셈블리에서 Awesomeium WPF 컨트롤을 추가하십시오. 아마도 WebControl 컨트롤 (Awesomium.Windows.Controls.WebControl) 만 필요합니다.
  5. 컨트롤을 도구 상자에서 디자인 화면으로 드래그 앤 드롭 - Visual Studio는 자동으로 프로젝트를 업데이트하여 Awesomeium 어셈블리에 대한 참조를 추가합니다.

Chromium을 둘러싼 다른 래퍼 라이브러리가 있습니다. 특별히 Awesomium을 보증하지는 않지만 최근 프로젝트에서 사용했을 때 좋은 시간을 보냈습니다.

또 다른 인기있는 라이브러리는 BSD 라이센스이며 Awesomium 's에 비해 맛이 좋지만 (내가 알 수있는 한) Visual Studio Toolbox 통합을 처리하는 SDK 설치 프로그램을 배포하지 않습니다. CefSharp.Wpf.dll 어셈블리에 대한 참조를 수동으로 추가하고 WPF 프로젝트에 요소를 추가하기 만하면됩니다 (XAML 편집기를 사용하여 도구 상자가 아니라 어쨌든해야 함).

관련 문제