根据以下链接和我的控制台应用程序,该方法DrawToBitmap不尊重不透明度.
证明链接:http: //social.msdn.microsoft.com/Forums/vstudio/en-US/e9704309-0c52-442d-80e0-2f8393dcd313/webbrowser-opacity-problem-
我的HTML代码:http://fiddle.jshell.net/L37TC/
<div id="fader" style="background-color: #ff0000">ffff</div>
<div style="background-color: blue; opacity:0;filter:alpha(opacity=0);">HIDDEN TEXT!</div>
SomeText
Run Code Online (Sandbox Code Playgroud)
我的C#控制台代码:
var bmp = new Bitmap(640,480, PixelFormat::Format32bppArgb)
var web = (System.Windows.Forms.Control)sender;
web.DrawToBitmap(bmp, Rectangle(0, 0, 640,480));
Run Code Online (Sandbox Code Playgroud)
所以我正在寻找替代的.NET内置解决方案(没有CEF,Awesomium,或任何扩展请)只是.NET的内置功能来修复错误或替代解决方案,以在我的控制台中截取Web URL的屏幕截图应用.
如果我让WebBrowser窗口对我的客户端可见并且使用CopyFromScreen不透明度并且HIDDEN TEXT没有显示,那么我怎么不想让WebBrowser窗口对桌面屏幕可见.
我正在寻找一个内置的解决方案,可以在没有问题的情况下从发布的URL中截取屏幕截图HIDDEN TEXT.换句话说,是尊重opacity的解决方案.
EDIT1:我的所有像素Bitmap class(.NET类不是BMP格式)的alpha值为255.所以问题不在于文件格式.我尝试过PNG和任何其他.NET支持的格式.
完整的源代码(控制台模板,需要添加引用System.Drawing和System.Windows.Forms
class Program
{
static System.Windows.Forms.WebBrowser w = new System.Windows.Forms.WebBrowser();
[STAThread]
static void Main(string[] args) …Run Code Online (Sandbox Code Playgroud) 我使用Web浏览器控件,文档加载了HTML页面.我想以编程方式从文档中删除元素.
任何人都可以指导我如何通过ID或名称属性删除任何元素?
关于这一点有很多线索,但没有一个是明确的,没有我尝试过甚至工作正常.
获取整个Web浏览器控件内容的代码是什么(即使是屏幕外的内容)?
看起来他们确实有:
webBrowser1.DrawToBitmap(); // but its unsupported and doesnt work
Run Code Online (Sandbox Code Playgroud)