당신은 WebBrowser 컨트롤을 사용하여 예제는 여기에 제공된 사용하여 확장 할 수 있습니다 http://www.codeproject.com/KB/miscctrl/wbp.aspx
[편집 : WPF WebBrowser 컨트롤을 사용하여 동일한 작업을 수행하는 방법을 설명하기 위해 답을 업데이트 (System.Windows을 .Controls.WebBrowser)]
기본 컨트롤은 동일합니다. 즉, SHDocVw.dll의 ActiveX 구성 요소입니다.
좀 더 나은 참조 URL을 작성했습니다. 거기에 컨트롤에 대한 MSDN 설명서에서 비슷한 일을 꽤 좋은 단서 밖으로 밝혀졌습니다 : http://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser(v=vs.90).aspx#4 또한 : http://support.microsoft.com/kb/329014이 있습니다.
당신은 "마이크로 소프트 인터넷 컨트롤"로 COM 참조 목록 아래 SHDOCVW에 대한 참조를 추가해야합니다
[ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("6d5140c1-7436-11ce-8034-00aa006009fa")]
internal interface IServiceProvider
{
[return: MarshalAs(UnmanagedType.IUnknown)]
object QueryService(ref Guid guidService, ref Guid riid);
}
static readonly Guid SID_SWebBrowserApp = new Guid("0002DF05-0000-0000-C000-000000000046");
void webBrowser_LoadCompleted(object sender, NavigationEventArgs e)
{
IServiceProvider serviceProvider = null;
if (webBrowser.Document != null)
{
serviceProvider = (IServiceProvider)webBrowser.Document;
}
Guid serviceGuid = SID_SWebBrowserApp;
Guid iid = typeof(SHDocVw.IWebBrowser2).GUID;
object NullValue = null;
SHDocVw.IWebBrowser2 target = (SHDocVw.IWebBrowser2)serviceProvider.QueryService(ref serviceGuid, ref iid);
target.ExecWB(SHDocVw.OLECMDID.OLECMDID_PRINTPREVIEW, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT, ref NullValue, ref NullValue);
}
XAML 다음 윈폼 컨트롤에 관심이
<Window x:Class="StackOverflowWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
<Grid>
<DockPanel LastChildFill="True">
<WebBrowser Name="webBrowser" Source="http://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser.aspx" LoadCompleted="webBrowser_LoadCompleted">
</WebBrowser>
</DockPanel>
</Grid>
</Window>
사람 버전 (System.Windows.Forms.WebBrowser)은 모든 IServiceProvider 수하물을 건너 뛸 수 있으며 WPF 컨트롤이 노출되지 않는 ActiveXInstance 속성을 사용합니다 (
).
와우, 마침내 작동하도록했습니다. 나는 별도의 창에서 '팝업'으로 미리보기를 기대하지는 않았지만 여전히 올바른 방향으로 나아가는 단계입니다. 도움을 주셔서 감사합니다. – JToland
아무런 문제가 없었습니다. 재미있었습니다. :) 대답을 스스로 사용할 수 있다는 것을 깨달았습니다. WebBrowser를 사용하여 HTML로 변환 한 화면 내용을 인쇄하지만 인쇄 미리보기 기능도 없습니다! – mcw0933