WPF中CEF安装的坑

上一个UI项目基本完工后,师傅给了个新的任务,研究怎么把浏览器加载到ui中,
由于使用ie内核太卡了,于是就上stackoverflow上查查有哪些解决方案,最后比较了下选择了CEF(Chromium Embedded Framework) 发现这里面的坑太多了。。。




言归正传:首先上github看看它的demo,发现了一个https://github.com/cefsharp/CefSharp.MinimalExample
作者就是cefsharp.wpf的作者,当我信心满满的下载下来之后,一运行发现一堆问题。。
首先是 引用,引用加载上之后发现引用不了命名空间。。
公司的网络太坑了,用nuget下载个引用根本下不下来于是回学校再研究吧。。
回学校下载好一运行竟然成功了。。。
第二天带着运行好的程序回公司,,还是用不了,就是其中一个dll报错,在网上找解决方案找了一天还是没找到。
最后用公司的网络墨迹的下载了nuget上的cefsharp.wpf的版本,把引用里的dll等东西拷到项目的release目录下就成功。。。
这说明网络的质量关乎着效率。。。


下面的代码是在Nuget上下载的后的简单demo

,webview的部分在下面这个xaml文件里~


<pre name="code" class="html"><Window x:Class="map.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        
        Title="MainWindow" Height="350" Width="525"
           xmlns:cefSharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"

        >
    <Grid Name="g">
        <Grid.RowDefinitions>
            <RowDefinition Height="8*"></RowDefinition>
            <RowDefinition Height="*"></RowDefinition>

        </Grid.RowDefinitions>

        <cefSharp:WebView   x:Name="aaa" >
            
        </cefSharp:WebView>
        <Button Grid.Row="1" Click="Button_Click">Submit</Button>
    </Grid>
</Window>
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using CefSharp.Wpf;
using System.IO;
using System.Reflection;
namespace map
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
           
            this.Loaded += delegate
            {
             
 
 
 Assembly  _assembly = Assembly.GetExecutingAssembly(); \\要用assembly来加载html文件是因为有可能webview还没加载先load就不显示地图了

Stream _imageStream = _assembly.GetManifestResourceStream("map.HTMLPage1.html"); 

StreamReader _textStreamReader = new StreamReader(_imageStream, Encoding.UTF8);

 // aaa.LoadHtml(File.ReadAllText(@".\HTMLPage1.html"), @".\HTMLPage1.html"); 

aaa.LoadHtml(_textStreamReader.ReadToEnd(), "map.HTMLPage1.html");

 ///aaa.Load("HTMLPage1.html");

 }; 

}
 private void Button_Click(object sender, RoutedEventArgs e) { 

aaa.Load("www.baidu.com"); } 

}

}


html文件里是百度地图api上的html源代码 用来在ui中显示百度地图~此处没放上来~

html的源代码直接在百度LBS云里面下载。
Html里面存的是百度LBS云里面的源代码,如果想自己添加麻点在地图里,可以在后台添加!记住一定要添加样式这个字段,并且创建表的时候要选择可检索,HTML文件里吧AK和表的号换掉,即可。~有可能还是不显示 正常的,。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值