65.9K
CodeProject 正在变化。 阅读更多。
Home

在 WPF 中显示 HTML 和 CefSharp 教程 第一部分

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.96/5 (26投票s)

2015 年 2 月 27 日

CPOL

4分钟阅读

viewsIcon

269119

这是一个关于 CefSharp 3 和 WPF 的基础入门教程。您将学习如何在 WPF 应用程序中显示 HTML。

引言

在不混合代码与 COM 或其他插件技术的情况下,在 WPF 应用程序中显示 HTML 的选择并不多。而在开源和使用自由方面,项目更是少之又少。

CefSharp Version 3 项目是一个非常有趣且稳定的项目。在开始之前或报告问题之前,请务必阅读 Wiki 和 FAQ 部分 [3]。

我一直缺少的是一个好的教程,能引导我从简单的场景进入 WPF 和 MVVM 的复杂世界。本系列文章旨在贡献文档,彻底改变这一状况。

必备组件

本系列文章几乎只需要 Visual Studio Express 和一个互联网连接。那么,让我们开始吧,创建一个名为 Sample1 的第一个 WPF 解决方案。请务必将项目的最低 .Net 版本设置为至少 .Net 4.5.2

前往:Visual Studio > 文件 > 新建项目... 并输入所需参数

来创建项目。

使用 CefSharp Version 3 创建 WPF 解决方案

我们将使用 CefSharp 3 的发布版本。此版本可以在 NuGet 上找到
https://github.com/cefsharp/CefSharp#nuget-packages

但它仅支持 x64 和 x86 应用程序。这意味着 CefSharp 3 不支持“AnyCPU”设置或任何其他处理器架构。因此,最好在引用 CefSharp 3 之前,将默认解决方案设置从“AnyCPU”复制到 x86 和 x64 配置,然后删除“AnyCPU”配置。

  • 解决方案(右键菜单)> 配置管理器
  • 单击 活动解决方案平台 > 新建... 来创建 x86 和 x64 设置







    单击 活动解决方案平台 > 编辑... 来删除“AnyCPU”配置(CefSharp 3 不支持它)




     
  • 确保也使项目设置与解决方案保持一致

     
  • 现在,让我们通过 NuGet 为解决方案添加引用

    单击解决方案(右键菜单)> 启用 NuGet 程序包还原
    单击解决方案(右键菜单)> 管理解决方案的 NuGet 程序包

    CefSharp.WPF 库添加到解决方案中
     
  • 保存所有更改并关闭 Visual Studio。您必须完全关闭它,否则 CefSharp 引用将不会正确显示。
     
  • 重新打开 CefSharp 3 解决方案并单击生成。
    预期:项目应成功生成,并且示例项目中的“引用”部分应显示 CefSharp.WPF 引用。
     
  • 让我们打开 MainWindow.xaml,并在其中添加一个 CefSharp 浏览器控件
<Window x:Class="Sample1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:cefSharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
        Title="MainWindow" Height="550" Width="625">
    <Grid>
        <cefSharp:ChromiumWebBrowser Grid.Row="0"
        Address="https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions" />
  </Grid>
</Window>
  • 也就是说,我们需要添加 CefSharp 命名空间引用
    xmlns:cefSharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
     
  •  ...以及控件本身
    <cefSharp:ChromiumWebBrowser Grid.Row="0"
      Address="https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions" />

     
  • 此代码将实例化 ChromiomBrowser 并将其指向由可绑定 Address 属性指示的 Internet 地址。

     
  • 现在生成并执行,享受吧。您应该会看到以下窗口,并且可以在其中进行浏览。但启动时请耐心等待 - 这取决于您的互联网速度以及您是否使用调试版本。

恭喜 :-) 您刚刚完成了本系列文章的第一步,旨在构建符合 MVVM 体系结构的复杂浏览器。

使用 CefSharp 3 的预览版本

对于那些在使用当前发布版本时遇到问题的人,MyGet.org 上也有一个预览版本。您可以使用此 预览版本 来检查您的问题是否已被报告,并且是否已被修复。为此,请打开

  • 工具 > NuGet 程序包管理器 > 程序包管理器设置
    来设置一个新的 NuGet 源:https://www.myget.org/F/cefsharp/

  • 进入 NuGet 程序包管理器,并从 MyGet.org 安装程序包

    现在回到解决方案,并为 MyGet 程序包添加引用

 

Web 浏览器控件自然可以用来显示从 Web 服务器检索到的内容。但此控件的强大之处不仅限于显示来自 Web 服务器的内容。它实际上旨在检索和显示几乎任何本地或远程源的内容。下一篇文章将介绍一种实现方法:https://codeproject.org.cn/Articles/887148/Display-HTML-in-WPF-and-CefSharp-Tutorial-Part

参考文献

[1] 使用 CEFSharp 将 Chrome 嵌入 WPF VB.NET 应用程序
     https://codeproject.org.cn/Tips/648678/Embedding-Chrome-in-a-WPF-VB-NET-Application-using

[2] CefSharp GitHub 仓库
     https://github.com/cefsharp/CefSharp
    
[3] CefSharp FAQ
     https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions
    
    CefSharp Wiki
    https://github.com/cefsharp/CefSharp/wiki

© . All rights reserved.