CefSharp V43 版本ToolTip功能和工程文件.csproj神秘关系(摸索很久)
来源:互联网 发布:淘宝怎么买高仿包包 编辑:程序博客网 时间:2024/05/02 05:04
废话不多说,这篇文章写给玩CefSharp已经至少会看Demo的进阶级玩家,当你对这个开源浏览器架构捣鼓非常开心的时候,你会发现问什么官方的WInform Demo完美的实现了网页title属性也就是自带Tips,而你自己拿了他的demo怎么重新造也造不出同样效果时,那么恭喜你和我一样都被坑了。
网上的CefSharp文章本来就少,中文几篇说ToolTip功能的还是比较老的CefSharp版本,但是现在我正在使用的事CefSharp V43的版本,完全帮不了我,于是发现官方自带Demo也就是CefSharp.WinForms.Example这个工程好像自带就实现了,但是代码里怎么都找不着,所以自己还是不知道怎么实现,别跟我说实现接口 CefSharp.IDisplayHandler就可以和重写bool OnTooltipChanged(IWebBrowser browserControl, string text)这方法,根本不是这样的,这可能是官方的bug他根本永远不会触发这个OnTooltipChanged函数,那Demo怎么就可以呢,经过一个一个文件的比对,终于发现和工程文件.csproj有直接的关系。
实际上我不停的对工程文件.csproj我找到了真正的线索,如果用记事本打卡手动进行更改项目的配置,那么没问题,结果是很正常的,但是如果我是利用VS自身的配置功能来更改项目的一些属性例如说删除一些cs文件,那么问题里面就出来了,你发现你再也生成不出有自带ToolTips实现的CefSharp,原因是VS自身配置功能有可能会导致.csproj的重新生成,一旦重新生成将不再是一开始的.csproj文件。
如何避免:不要再使用VS配置工具来配置此项目,直接打开记事本手动配置。
证据:实际即使你把一个CS文件移除项目,再添加回来,结果MD5值和之前的那个文件已经不一样了
也就是说只要这个工程文件不变(不变不仅仅是里面内容不变而是这个文件不是VS新生成出来的而是原来的文件),那么ToolTips似乎就可以自动实现,完全不用敲任何一行代码,我猜可能是那边C++实现做了一些对EXE清单里秘钥的判断,所以才导致必须使用原工程,所以后我后续的做法也是把这个工程Copy一份重写干净的代码,至于为什么作者要这样呢,我有空翻一翻国外的帖子看看大牛们真正合理的解释,不过先这样治标不治本貌似也能继续用下去。
- CefSharp V43 版本ToolTip功能和工程文件.csproj神秘关系(摸索很久)
- CefSharp(二) 文件下载功能
- ASP工程文件(csproj)解读
- vs2010打开c#工程时 -- 无法打开项目文件“***.csproj”,因为此版本不支持该项目类型
- Cefsharp实现快捷键功能
- 根据csproj文件查看项目的版本信息
- Visual Studio各版本工程文件之间对应关系
- CefSharp.WPF 与 visualStudio版本
- CefSharp 47版本 flash插件
- Chrome浏览器V43版本不支持silverlight 5.0的解决办法
- csproj文件的用途
- csproj文件的用途
- Appium GUI 功能摸索
- VS打开.net工程提示"无法读取项目文件"web.csproj",系统找不到指定路径"
- *.csproj项目文件理解(VS2008)
- 无法读取项目文件 .csproj
- 无法打开项目文件.csproj”
- 无法读取项目文件 .csproj
- 收起键盘
- 国家气象局开方的免费天气接口。
- DANDELION 病毒
- 【读书笔记】CSS3学习(二)
- 1028. List Sorting (25)
- CefSharp V43 版本ToolTip功能和工程文件.csproj神秘关系(摸索很久)
- iOS开发基础 :UIButton属性
- 使用内存 调试
- Android动态加载Dex机制解析
- Linux SAMBA 共享服务器搭建
- 栈的应用之二进制转换为十进制,八进制和十六进制
- Xcode开发的常见问题与解决方案
- Android view手势拖动和缩放
- VS2012 + EF6.x + MySql 开发环境搭建问题 --- 终结篇