zoukankan      html  css  js  c++  java
  • 【CefSharp】 禁用右键菜单 与 控制弹出窗口的方式(限版本39.0.0.1)

    这周没什么时间,一开始就在忙一些CefSharp的事情,Win10的研究就放了下来,CefSharp的资料挺少的,但好在是开源的,可以我们便宜的折腾。因为两个的内容都不多,我就合成一篇文章啦。

    这还里还要吐嘈一下WinForm,也可能是WPF玩的年头长了,觉得WinForm真TNND的难用呀,弄几个定义的控件,相当之麻烦。

    回归正文。

    因为新版本中接口发生了变化,该文章只适用于39.0.0.1。

    一、禁用右键菜单

    禁用右键菜单其实是很容易的。主就要是实现一个接口 IMenuHandler,这个接口有一个 OnBeforeContextMenu的方法,我们在这里让返回一个false,右键菜单就消失了。

        internal class MenuHandler : IMenuHandler
        {
            public bool OnBeforeContextMenu(IWebBrowser browser, IContextMenuParams parameters)
            {
                return false;
            }
        }

    再将这个对像的实例赋给ChromiumWebBrowser对象的MenuHandler属性上就OK啦。

    var browser = new ChromiumWebBrowser(url);
    browser.MenuHandler = new MenuHandler();

    二、控制弹出窗口的方式

    在CefSharp,如果打开一个网页,如果这网页要在新窗口开打,他真的会弹出一个新的窗口,但是这个窗口并不受我的们控制,比如,我们要强制在当前浏览器显示、我们要在一个TabControl的标签中显示,我们要一个自己风格的窗口。而且在WPF中,弹出的竟然是一个Form的窗口,WPF的同学是不是感到深深的内伤。

    控制弹出窗口有到的接口:ILifeSpanHandler,

    方法两个:OnBeforeCloseOnBeforePopup

    控件弹出窗口主要是用到了 OnBeforePopup,它也有一个Boolean的返回值,当这个值为true的时候,CefSharp就不自己弹出窗口了,在这里,我们就可以偷偷的做自己的事情了。

        internal class LifeSpanHandler : ILifeSpanHandler
        {
            public void OnBeforeClose(IWebBrowser browser)
            {
    
            }
    
            public bool OnBeforePopup(IWebBrowser browser, string sourceUrl, string targetUrl, ref int x, ref int y, ref int width, ref int height)
            {
           //在这里,可以做你想做的事情哦
    return true; } }

    再将这个对像的实例赋给LifeSpanHandler属性上就OK啦。

    var browser = new ChromiumWebBrowser(url);
    browser.LifeSpanHandler = new LifeSpanHandler();

     注:在接口的这个方法触发时,并不在STA线程,如果要对UI有操作的话,要回到UI线程。

    本文地址:http://www.cnblogs.com/gaoshang212/p/4551431.html 

  • 相关阅读:
    NTC3950-10K温度传感器
    Maven常用命令:
    Linux-IIC驱动(详解)
    sourceinsight4 用设置
    LTDC/DMA2D—液晶显示***
    STM32F429的LTDC和DMA2D ***
    python机器学习sklearn 岭回归(Ridge、RidgeCV)
    random_state 参数
    python3 文件及文件夹路径相关
    机器学习:简单线性回归
  • 原文地址:https://www.cnblogs.com/gaoshang212/p/4551431.html
Copyright © 2011-2022 走看看