【问题标题】:What is the best control for rendering HTML content in WPF在 WPF 中呈现 HTML 内容的最佳控件是什么
【发布时间】:2015-03-22 07:56:20
【问题描述】:

我的目标是在我的 WPF 应用程序中显示带有样式的 HTML 内容。我从 API 获取 HTML 内容作为响应。我需要在框架中显示内容(最好是文本块)。我尝试使用 wpf 的 webbrowser 控件,在网格上我遇到了许多格式化问题,并且我无法为 webbrowser 控件显示透明背景。我发现问题是由于this.

示例 HTML 内容:

<p>My <b>para<b></p><ul> <li>My list1</li> <li>My list2</li></ul>

我在互联网上进行了研究,发现了一些对 wpf 的控制。

Awesomium

WPF Chromium

我是 WPF C# 的新手,我不知道如何在我的 wpf 应用程序中使用控件。我尝试了来自herehere 的一些示例应用程序。但是,由于缺少参考,它显示出很多错误。

我还尝试使用 HtmltoXaml 转换器和 WPF Rich box,发现它在渲染后会跳过许多内容。

如果我使用上述有用的控件或链接实现了一个简单的示例 wpf 应用程序并且没有错误地工作,那对我将非常有帮助。

任何克服我的问题的新想法也很感激。提前感谢,对不起我的英语。

【问题讨论】:

  • @Emo 我在问题中提到了这一点。 . 我尝试使用 wpf 的 webbrowser 控件,但我遇到了许多关于网格格式化的问题,并且我无法为 webbrowser 控件显示透明背景。我发现问题是由于this
  • 对不起@ErnodeWeerd。我拼错了你的名字。
  • 哈,是的,我错过了。另请注意,索取图书馆或类似的建议与 SO 无关。如果您将问题改写为:“如何在 WPF 窗口中透明地呈现 HTML?”您可能会得到更好的答案。

标签: c# wpf xaml chromium


【解决方案1】:

如果你需要一个 html5 渲染浏览器,我推荐 CEFSharp。它是 nugettable、稳定的,并且与最新的 Chromium 代码同步。

【讨论】:

  • 感谢您的回复。我在link 的帮助下创建了一个示例应用程序。我尝试了webView.LoadHtml("&lt;p&gt; paragraph &lt;p&gt;"); 而不是webView.Address = “http://www.google.co.uk”; 但是我无法呈现内容。任何帮助。
  • 那篇博文基于一个基于 Chromium 25 的现在相当老的 CefSharp1 版本。一个好的起点是 CefSharp.MinimalExample 提到的 github.com/cefsharp/CefSharp/wiki/… ... 之后查看 CefSharp.Wpf.Example 源了解更多详情。在项目 GitHub 页面的 README.md 中有提到。
  • 请尝试使用 nuget,它有助于包装。您已经发现在为解决方案设置正确的 x86/x64 时需要小心。以防万一它有帮助我添加 CEF 的视频(我并不为此感到自豪,但它可能会有所帮助)。我会在这里添加它以防它有用,请原谅在呈现ndcvideos.com/#/app/video/2251 时相当糟糕的尝试最后 CEF 常见问题解答是好的。 github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions我查看了您的网页-您是否尝试过使用 nuget 添加 CEF?它整理了所有的库和依赖文件。
  • 刚刚检查了你的代码,我发现了 2 个问题 - 1 - 设置浏览器子进程路径: var settings = new CefSettings {BrowserSubprocessPath = "CefSharp.BrowserSubprocess.exe"}; 2 - 设置地址/html不是在你的ctor中,而是在webView.IsBrowserInitialised事件中(并且只有在检查浏览器初始化之后)简而言之,CEF是BIG FAT dll,需要一段时间来加载和初始化......我们将立即使用!
猜你喜欢
  • 2011-09-02
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 2020-06-12
  • 1970-01-01
  • 2019-01-18
  • 2010-09-21
  • 1970-01-01
相关资源
最近更新 更多