문제

내가 미쳤다고 가정 해 봅시다. C#이있는 기본 HTML 렌더링 엔진을 구현하고 싶다. WPF 컨트롤을 사용하여 HTML 레이아웃을 표시하고 싶습니다.

그런 아이디어로 얻을 수있는 것은 없지만 여전히 시도하고 싶습니다! 그렇다면 어떤 라이브러리, 프로젝트 및 문서 가이 작업을 수행하는 데 도움이됩니까?

도움이 되었습니까?

해결책

WPF XAML의 기능은 HTML의 기능의 슈퍼 세트이므로, 당신이해야 할 일은 서로를 매핑하는 것입니다.

입력이 XHTML 인 경우 XSLT 또는 LINQ-to-XML을 사용하여 데이터를 얻을 수 있습니다.

XSLT를 사용하는 경우 XAMLREADER.PARSE ()로 구문 분석하는 XAML로 끝납니다. XSLT가 비교적 제한되어 있기 때문에 LINQ-to-XML을 사용하는 것보다 더 많은 작업 일 것입니다.

LINQ-to-XML을 사용하는 경우 XAML을 생성 한 다음 XSLT 케이스에서와 같이 구문 분석하거나 객체 트리를 직접 만들 수 있습니다. linq-to-xml을 사용하여 XAML을 만들면 일반적인 선호 언어 인 C# 대신 vb.net에 실제 번역 코드를 작성합니다. vb.net의 "XML 리터럴"구문은 해당 부분이 작업의 일부를 더 쉽게 만듭니다.

입력이 XHTML이 아닌 임의의 HTML 인 경우 타사 라이브러리를 사용하여 XHTML로 변환하여 거기서 작업합니다. HTML의 모든 구문 분석 이상감을 처리하는 것은 많은 작업이며 아마도 대부분의 실제 목표와 관련이 없을 것입니다.

HTML을 WPF 객체로 바꾸지 않고 HTML을 표시하려면 프레임 컨트롤을 사용할 수 있습니다.

다른 팁

HTML 렌더링은 XAML 파일로 쉽게 변환되며 렌더링은 매우 빠릅니다. 아름다운 줌과 글꼴이있는 HW 가속 브라우저를 얻게됩니다.

그러나 CSS를 어떻게 처리합니까? 스타일 (Yuck)을 만들어야합니까? dhtml, html5 및 java script .. 이제 많은 페이지에서 볼 수없는 이들이 필요합니다.

Java 스크립트의 쉬운 방법은 모든 사람이 사용하는 파서를 사용하는 것입니다. 더 나은 방법이있을 수 있습니다 (및 Java 스크립트는 CIL 컴파일러가 있습니까?)

XAML 대안에 대한 유형의 매핑이있는 HTML 파서, 흥미로운 ... 아마도 Parser Lexer에 Antlr을 사용할 수 있습니다. http://www.antlr.org/, 보다 구체적으로는 흥미로운 코드 리젝트 프로젝트가 있습니다 http://www.codeproject.com/kb/cs/tagbasedhtmlparser.aspx, 당신은 아마도 당신의 html을 xaml로 변환 할 수 있습니다. 이것은 매우 흥미로울 것입니다 :)

이 프로젝트는 당신이 달성하려는 목표라고 생각합니다.
https://htmlrenderer.codeplex.com/
어쩌면 당신은 그것을 작업하고 HTML 5와 CSS 3 지원을 추가 할 수 있습니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top