其他分享
首页 > 其他分享> > cefsharp wpf wpf加载svg 在同一个页面中打开链接

cefsharp wpf wpf加载svg 在同一个页面中打开链接

作者:互联网

安装 PM> Install-Package CefSharp.Wpf
解决方案->属性->配置属性->活动解决方案平台—新建-x64

在需要使用的窗体上引用xmlns:cefSharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
重新生成解决方案
引用
<cefSharp:ChromiumWebBrowser Name="browser" Grid.Row="0" Address="http://www.baidu.com" Margin="10,43,10,10"/>

加载页面
var value="http://cnglogs.com/ives";
browser.Load(value);

获取IBrowser对象,对页面的前进、后退操作需要此对象
private IBrowser IBrowser
{
get
{
return browser.GetBrowser();
}
}

IBrowser.GoForward();//前进
IBrowser.Reload();//重载
IBrowser.StopLoad();//停止
IBrowser.GoBack();//后退

加载svg
安装:Install-Package SharpVectors -Version 1.0.0

需要注意引用方式 Source="pack://application:,,,/1.svg" ,这样才能正确的引用资源。
svg 文件的属性默认是内容,务必改为 Resource

在同一个页面中打开链接
CefSharp中控制弹窗的接口是 ILifeSpanHandler,对OnBeforePopup进行重写
首先定义操作类
public class OpenPage : ILifeSpanHandler
{
public bool DoClose(IWebBrowser browserControl, IBrowser browser)
{
return false;
}

    public void OnAfterCreated(IWebBrowser browserControl, IBrowser browser)
    {

    }

    public void OnBeforeClose(IWebBrowser browserControl, IBrowser browser)
    {

    }

    public bool OnBeforePopup(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl,
        string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures,
        IWindowInfo windowInfo, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser)
    {
        newBrowser = null;
        var chromiumWebBrowser = (ChromiumWebBrowser)browserControl;
        chromiumWebBrowser.Load(targetUrl);
        return true; //Return true to cancel the popup creation copyright by codebye.com.
    }
}

然后添加处理事件 browser.LifeSpanHandler = new OpenPage();

标签:browserControl,cefsharp,svg,CefSharp,IBrowser,IWebBrowser,wpf,public,browser
来源: https://www.cnblogs.com/ives/p/12031588.html