将图像元素添加到Web浏览器控制页面(现有站点)

时间:2015-11-01 18:13:45

标签: c# forms

我试图创建一个带有图像的元素到Windows窗体webbrowser控制现有网站。然后我想将创建的元素移动到某个位置。我有这个代码,但它没有用。

 private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        webBrowser1.Document.GetElementById("gpu_notice").Style = "display:none"; 
        webBrowser1.Document.GetElementById("header").OuterHtml = "";
        webBrowser1.Document.GetElementById("ads").OuterHtml = "";
        webBrowser1.Document.GetElementById("the_game").Style += "position: absolute; top: 0px; right: 0px;";
        HtmlElement logo = webBrowser1.Document.CreateElement("logo");
        logo.SetAttribute("SRC", @"C:\Users\Susana\Documents\Projeto HaxballK\Design\Logo HK.png");
        webBrowser1.Document.Body.AppendChild(logo);
        logo.SetAttribute("float", "right");
    }

2 个答案:

答案 0 :(得分:1)

是否将任务插入到使用def类显示的现有HTML文档中的任务?如果是,那么步骤可以是(未经测试,对不起)

  1. 使用WebBrowser作为HTML字符串
  2. 下载文档
  3. 在HTML字符串中设置WebClient亲戚(将<body>插入style='position: relative'元素)
  4. 将元素插入HTML字符串,在<body>之后,将元素设为绝对值(设置<body>
  5. 将修改后的HTML字符串设置为style='position: absolute; left=...; right=...'
  6. DocumentText属性

答案 1 :(得分:1)

你必须使用&#34; img&#34;标签代替&#34; logo&#34;并使用file protocol设置文件路径。

HtmlElement logo = webBrowser1.Document.CreateElement("img");
logo.SetAttribute("SRC", @"file:///C:/Users/Susana/Documents/Projeto HaxballK/Design/Logo HK.png");
webBrowser1.Document.Body.AppendChild(logo);
logo.SetAttribute("float", "right");

<强>已更新

如果您想在所有JavaScript初始化运行后添加图片,只需使用Timer关闭。

System.Windows.Forms.Timer timer = new Timer();
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    // other processes

    timer.Interval = 1 * 1000 * 5; // 5 seconds
    timer.Tick += timer_Tick;
    timer.Start();
}

void timer_Tick(object sender, EventArgs e)
{
    timer.Tick -= timer_Tick;

    HtmlElement logo = webBrowser1.Document.CreateElement("img");
    logo.SetAttribute("SRC", @"file:///C:/Users/Susana/Documents/Projeto HaxballK/Design/Logo HK.png");
    webBrowser1.Document.Body.AppendChild(logo);
    logo.SetAttribute("float", "right");
}