题
让我们说我疯了,我想要实现的一个基本HTML呈现的引擎。我想用WPF控制,以显示HTML布局。
虽然没有什么也得不到有这样的想法,我还是想尝试一下!什么图书馆、项目和文件将会帮助我获得这样做?
解决方案
由于WPF XAML的能力是HTML的功能的一个超集,几乎所有你需要做的是映射一个到另一个。
如果您的输入是XHTML,你可以简单地使用XSLT或LINQ到XML来获取数据。
如果您使用XSLT你最终会与你XamlReader.Parse解析XAML()获得的UIElement您可以添加到您的窗口或其他容器WPF。这可能是比使用LINQ到XML因为XSLT是相对有限的更多的工作。
如果您使用LINQ到XML,你可以选择生产XAML,然后分析其作为XSLT的情况下,或者你可以直接创建对象树。如果您在使用LINQ到XML创建XAML,我会写在VB.NET实际的翻译代码,而不是C#这是我正常的首选语言。 VB.NET的“XML文本”语法,使工作更容易的部分。
如果您输入任意HTML和XHTML不,我会使用第三方库将其转换为XHTML和工作从那里。处理所有的HTML的解析陌生的是很多的工作,可能主要是无关的实际目标。
如果你只是想不把它变成WPF对象,以显示HTML,您可以使用帧控制。
其他提示
渲染HTML会很容易只转换为XAML文件和渲染应该是比较快的。您将获得与美丽的缩放和字体的硬件加速的浏览器。
但你如何处理CSS - 您将需要创建样式(呸)? DHTML,HTML5和Java脚本..这么多页,现在要求这些thinsg你甚至不能查看。
有关Java脚本的最简单的方法是使用解析器每个人都使用,有可能是一个更好的方法(和Java脚本CIL编译器?)
html的分析程序,与一个类型的映射xaml替代办法,有趣的...也许你可以使用这些代码为语法分析程序分析器 http://www.antlr.org/, 更具体地说这是一个有趣的演示、项目 http://www.codeproject.com/KB/cs/TagBasedHtmlParser.aspx, 你也许可以试图改变你html转换,这将是相当有趣:)
我觉得这个项目正是你的目标是要达到什么:点击 https://htmlrenderer.codeplex.com/ 结果 也许你可以在它的工作,并添加HTML 5和CSS 3的支持!