2009-05-04 6 views
2

Windows 폼 컨트롤을 사용하여 표준 C# 프로그램으로 wysiwyg 편집기를 만들었습니다. 나는 WPF를 제외하고 똑같은 일을하고 싶다.WPF WYSIWYG 편집기

내 오래된 응용 프로그램에서 나는 이런 식으로했습니다.

using mshtml; 
private IHTMLDocument2 doc; 

... 

HTMLeditor.DocumentText = 

"<html><body></body></html>"; 

doc = HTMLeditor.Document.DomDocument as IHTMLDocument2; 

doc.designMode = "On"; 

편집기에서 Document.ExecCommand를 사용할 수 있도록 허용합니다.

WPF에서 어떻게 완성됩니까? WPF의 WebBrowser 컨트롤이 디자인 모드를 허용하지 않는 것처럼 보입니다.

감사합니다.

답변

5

이 시도 :

public MyControl() 
{ 
    InitializeComponent(); 

    editor.Navigated += new NavigatedEventHandler(editor_Navigated); 
    editor.NavigateToString("<html><body></body></html>"); 
} 

void editor_Navigated(object sender, NavigationEventArgs e) 
{ 
    var doc = editor.Document as IHTMLDocument2; 

    if (doc != null) 
     doc.designMode = "On"; 
} 

편집 : 에디터는 웹 브라우저 컨트롤입니다.

+2

정말 고마워. 이걸 시도하는 사람을 가리키는 포인터는 Microsoft HTML Object Reference를 프로젝트에 추가하고 mshtml을 포함하는 것을 잊지 마라! – puttputt

+1

또는 body 태그에서 contentEditable = true를 설정하거나 InvokeScript를 사용하여 문서에서 javascript를 실행할 수도 있습니다. 이렇게하면 mshtml 요구 사항에서 벗어날 수 있습니다. – dustyburwell